angular-网络请求天气

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <script type="text/javascript" src="angular-1.3.0.js"></script>
    <title></title>
    <script type="text/javascript">
        var app = angular.module("myApp", []);


        app.value("URL", "https://free-api.heweather.com/v5/weather?city=beijing&key=545d63e185fc48169a43cbabba6e74d2");


        app.factory("weather", function ($http, $q, URL) {
            return function () {
                return $http.get(URL).then(function (response) {
                    var data = response.data.HeWeather5[0];


                    var weather = {city: data.basic.city, txt: data.now.cond.txt, day3: [], hour4: []};


                    for (var i in data.daily_forecast) {
                        weather.day3.push({
                            date: data.daily_forecast[i].date,
                            txt: data.daily_forecast[i].cond.txt_d
                        });
                    }


                    for (var i in data.hourly_forecast) {
                        weather.hour4.push({
                            time: data.hourly_forecast[i].date,
                            txt: data.hourly_forecast[i].cond.txt
                        });
                    }


                    return weather;
                }, function (response) {
                    return $q.reject(response.status);
                });
            }
        });


        app.controller("myCtrl", function ($scope, weather) {
            weather().then(function (weather) {
                $scope.weather = weather;
            }, function (status) {
                console.log(status);
            });
        });
    </script>
</head>
<body ng-app="myApp">
<div ng-controller="myCtrl">
    <div>
        城市:<i>{{ weather.city }}</i>
    </div>
    <div>
        天气:<i>{{ weather.txt }}</i>
    </div>
    <div>未来3天天气:</div>
    <table border="1">
        <tr>
            <th>日期</th>
            <th>天气</th>
        </tr>
        <tbody ng-repeat="value in weather.day3">
        <tr>
            <td>{{ value.date }}</td>
            <td>{{ value.txt }}</td>
        </tr>
        </tbody>
    </table>
    <div>未来几小时天气:</div>
    <table border="1">
        <tr>
            <th>时间</th>
            <th>天气</th>
        </tr>
        <tbody ng-repeat="value in weather.hour4">
        <tr>
            <td>{{ value.time }}</td>
            <td>{{ value.txt }}</td>
        </tr>
        </tbody>
    </table>
</div>
</body>
</html>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Angular中进行网络请求有多种方式,最常用的是使用Angular的HttpClient模块。 首先,确保你的项目已经引入了`@angular/common/http`模块。然后,在你的组件或服务中引入HttpClient模块: ```typescript import { HttpClient } from '@angular/common/http'; ``` 接下来,你可以在构造函数中注入HttpClient服务: ```typescript constructor(private http: HttpClient) { } ``` 现在,你可以在你的组件或服务中使用HttpClient来发送请求。以下是一些常见的示例: 1. 发送GET请求并获取响应数据: ```typescript this.http.get('https://api.example.com/data').subscribe( data => { console.log(data); // 处理响应数据 }, error => { console.error(error); // 处理错误 } ); ``` 2. 发送POST请求并传递数据: ```typescript const data = { name: 'John', age: 25 }; this.http.post('https://api.example.com/user', data).subscribe( response => { console.log(response); // 处理响应数据 }, error => { console.error(error); // 处理错误 } ); ``` 3. 发送PUT请求更新数据: ```typescript const data = { name: 'John', age: 30 }; this.http.put('https://api.example.com/user/123', data).subscribe( response => { console.log(response); // 处理响应数据 }, error => { console.error(error); // 处理错误 } ); ``` 以上示例只是一些常见的用法,HttpClient还提供了其他的方法和功能,比如处理请求头、设置请求参数、处理响应拦截等。你可以参考Angular官方文档来深入了解更多信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值