更好的方法来实现$ .simpleWeather AJAX请求?

时间:2014-10-01 17:15:57

标签: javascript jquery ajax angularjs plugins

背景:

我正在使用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循环本身。

您有什么看法?

0 个答案:

没有答案