AngularJS的应用(3)

现在我们已经可以通过添加数据到controller后在网页中呈现。但是当数据包含成千条甚至上万条,或者一些实时更新的数据(比如说每小时天气预报或者股市行情)的时候,这时候硬加数据到controller中就显得毫无优势。一个较好的解决方法是从服务器读取实时数据。我们可以通过创建服务来实现。

如下显示的是我们要呈现的json数据:

{"city_name": "New York","country": "US","days": [{"datetime": 1420390800000,"icon": "https://s3.amazonaws.com/codecademy-content/courses/ltp4/forecast-api/sun.svg","high": 68,"low": 37},{"datetime": 1420477200000,"icon": "https://s3.amazonaws.com/codecademy-content/courses/ltp4/forecast-api/clouds.svg","high": 68,"low": 37},{"datetime": 1420563600000,"icon": "https://s3.amazonaws.com/codecademy-content/courses/ltp4/forecast-api/rain.svg","high": 46,"low": 14},{"datetime": 1420650000000,"icon": "https://s3.amazonaws.com/codecademy-content/courses/ltp4/forecast-api/clouds.svg","high": 46,"low": 28},{"datetime": 1420736400000,"icon": "https://s3.amazonaws.com/codecademy-content/courses/ltp4/forecast-api/sun.svg","high": 59,"low": 32}]
}

这个JSON object包含了city_namedays 矩阵。下面我们创建services 文件夹,并在下面建一个名为forecast 的服务来从服务器端获取天气数据。forecast需要使用AngularJS内置的$http来从server端获取JSON数据。因此,我们添加$httpforcast service中作为一个从属物(dependency)。现在我们就可以在forecast内部使用$http了。在forecast 中,使用$http 创建一个HTTP request GET 数据。如果request成功,数据返回;否则返回error信息。
forecast.js 代码如下:

app.factory('forecast', ['$http', function($http) {return $http.get('http://s3.amazonaws.com/codecademy-content/courses/ltp4/forecast-api/forecast.json').success(function(data) {return data;}).error(function(err) {return err;});
}]);

将该js 文件嵌入到index.html的

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部