我正在使用simpleWeather.js jQuery插件:http://simpleweatherjs.com以及AngularJS + RequireJS。
在我的一个服务文件中,我有以下AJAX请求和回调:
//AJAX Request
myAjaxCheck:function(city){
$.simpleWeather({
location: city,
woeid: '',
unit: 'c',
success: function(weather) {
var temperatureTemp = parseInt(weather.temp);
colorSwatchService.weather = +weather.temp + '°' + weather.units.temp + ' ' + weather.currently;
colorSwatchService.returnSeason(temperatureTemp); //Callback
}
});
//Callback
returnSeason:function(temperature){
var date = new Date();
var month = date.getMonth();
if (temperature >= 20){
colorSwatchService.seasons = summerCollectionService;
}
else if (temperature>4 && temperature <20 && (month>7 && month<12)){
colorSwatchService.seasons = fallCollectionService;
}
else if (temperature>4 && temperature <20 && (month>1 && month>6)) {
colorSwatchService.seasons = springCollectionService;
}
else if (temperature < 4){
colorSwatchService.season = winterCollectionService;
}
}
在AJAX请求之后更新视图我在变量上使用$ watch,并且在AJAX请求完成后我强制进行$ digest循环。这变得很混乱,我认为这不是正确的方法。
在AngularJS代码中实现$ .simpleWeather AJAX请求有更优雅的方法吗? 例如,我知道从URL获取数据时Angular有$ http,它将调用$ digest循环本身。
您有什么看法?