我一直在撓頭,因爲這可能是問題,請原諒我缺乏JavaScript專業知識。AngularJS服務變量參考
我有一個Angular應用程序,除其他外,有一個用戶將工作的項目隊列。我有一個管理此隊列的服務(當前項目,移動,完成等)。我創建的控制器從服務器獲取當前隊列項目的詳細信息,然後顯示它們。
我遇到的問題是服務正在正確移動對象的隊列,將當前項目設置爲當前索引處的數組項目。但是,Controller從不會看到當前的項目更改。
這裏是一個基本的例子來解釋。一個工作示例是http://jsfiddle.net/Surefire_gf/pjMrh/2/,您需要查看控制檯才能看到輸出。
// ... service code...
var items = [];
var currentItem;
var currentIndex;
...
var moveNext = function() {
currentIndex = currentIndex + 1;
currentItem = items[currentIndex];
};
// ... controller code ...
var skip = function() {
service.moveNext();
fetchData(service.currentItem); //THIS NEVER CHANGES, ALWAYS UNDEFINED
};
將當前項目變量設置爲數組中的某個位置可以在服務中看到,但從不是控制器。但是,如果我做一個angular.extend而不是直接引用數組,它就可以工作。有誰知道可能會發生什麼?
我在原來的小提琴,該值被設置在第29行,'CURRENTITEM =項目[CURRENTINDEX]'請原諒我的無知的JavaScript,但爲什麼沒有工作? – user2175281
@ user2175281 - 在你原來的小提琴中,'currentItem'只是一個局部變量;它不是服務的一部分(即使您將*值賦給服務對象)。 –
啊,我明白了,點擊了。謝謝,完美地工作! – user2175281