[英]How to update a global variable inside a nested function in angularjs?
这是我正在使用的代码。 currentId是10; 我正在进行一个具有$ http.get(to JSON)函数的服务调用,并且我希望在执行该函数后以JSON的长度将数组攻击为currentId。 我该怎么做? angularjs是否有任何特殊功能对我有帮助。 我在这里阅读了其他相关问题,但是我需要在angularjs中完成。 谢谢。
var currentId = 10;
console.log(currentId + ' before function'); //outputs 10
function findId(){
readJson.readJsonfun().then(function(data) {
currentId = data.length; //say data.length = 20;
return currentId;
});}
findId();
console.log(currentId + ' before function'); //should output 20?
var currentId = 10;
var modifiedId1;
var modifiedId2;
console.log(currentId + ' before function call');
function findId(){
return readJson.readJsonfun().then(function(data) {
currentId = data.length;
return $q.when(currentId);
});
}
findId().then(function(id){
//first time we need it
firstFunction(currentId); //or firstFunction(id);
});
function firstFunction(id){
modifiedId1 = id * 2;
}
function secondFunction(){
return findId().then(function(id){
//second time we need it, currentId is updates
modifiedId2 = id * 4;
return $q.when();
});
}
将关注变量(currentID)存储在服务中。 在您的服务内部,它看起来像这样:
.service('Example', function(){
var service = this;
var currentID = null;
service.getCurrentID = function() {
return currentID;
}
service.findId(){
readJson.readJsonfun().then(function(data) {
currentId = data.length; //say data.length = 20;
});}
然后,从服务之外,你可以调用Example.findID()
来更新currentID,然后Example.getCurrentID()
来检索实际值
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.