这是我正在使用的代码。 currentId是10;我正在进行一个具有$ http.get(对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?
答案 0 :(得分:0)
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();
});
}
答案 1 :(得分:0)
将关注变量(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()
来检索实际值