如何使用AJAX更改服务中的变量?AngularJS
How to change a variable in a service with AJAX? AngularJS
我试图使用AJAX引入一些数据,然后在将结果发送到控制器之前对其进行修改。我已经在控制器中完成了这些工作,但我被告知最好在服务中完成。
app.factory('GameweekJsonFactory', ['$http',function($http){
var promise;
var service = {
async: function() {
if ( !promise ) {
promise = $http.get('jsons/gameweeks.json').then(function(response){
return response.data
});
}
return promise;
}
}
return service;
}]);
然后在另一个工厂中,我想根据AJAX调用的响应更改变量的值。(例如,如果这是第6个游戏周,我希望gwk等于6)。
app.factory('GameweekFactory',['GameweekJsonFactory',function(GameweekJsonFactory) {
var gwk;
var obj = {
foo: function(){
GameweekJsonFactory.async().then(function(d){
//Code here to find out the current gameweek.
gwk = 6;
return gwk;
});
}
};
return gwk;
}]);
controller: function(GameweekFactory){
console.log('Controller Log '+GameweekFactory)
},
如何修改工厂范围内的原始gwk变量?我想不出来,我在谷歌上搜索了很长时间!
没有正确定义工厂。AngularJS工厂是返回值的函数,在这个例子中,它是一个对象,方法名为foo
。
承诺是可链接的。成功回调返回的值将传递给下一个成功回调。因此您可以操作该值(添加gwk)并返回该值。
app.factory('GameweekFactory',[
'GameweekJsonFactory',
function(GameweekJsonFactory) {
return {
foo: function(){
return GameweekJsonFactory.async().then(function(d){
//Code here to find out the current gameweek.
d.gwk = 6;
return d;
});
}
};
}]);
controller: function(GameweekFactory){
GameweekFactory.foo().then(function(d){
console.log('Controller Log '+d.gwk)
});
}
相关文章:
- AngularJS-在JSON选择器中使用变量名
- AngularJS中的封装窗口全局变量
- $scope变量被视为字符串AngularJs
- 存储$http如何从$http函数(Angularjs)外部获取可访问变量中的响应
- AngularJS-使模型变量可用于jQuery
- 向AngularJS目录添加JS变量
- angularjs:访问angular控制器中的jquery变量
- 如何在AngularJS-ng重复循环中将长JSON路径缩短为变量
- Ionic:AngularJS变量未使用$scope更新DOM
- ng类中isActive方法中的变量angularjs
- 未定义变量AngularJS
- 如何使用AJAX更改服务中的变量?AngularJS
- 使用变量angularjs访问嵌套对象
- 如何获取作用域变量angularjs中的json数据
- 正在更改出厂时的控制器变量.AngularJS
- 我可以't获得服务变量angularjs
- 未定义变量:AngularJS
- 设置$scope变量AngularJS
- 如何在路径中使用变量?(Angularjs)
- 深度拷贝(解绑定)两个作用域变量——AngularJS