我有以下代碼角度爲每個封閉範圍可變
$scope.getBooksByUser = function (user) {
var books = [];
ProductFactory.getBooks.query({ id: user.id }).$promise.then(function (result) {
angular.forEach(result, function(i) {
books.push(i.name);
debugger;
})
});
};
正如你所看到的,我試圖填補一個簡單的JavaScript陣列角度爲每個。當執行此功能時,數組books
仍爲空。
我有點困惑這種行爲,因爲當我嘗試調試我的代碼,我可以看到,每次迭代值設置在數組中。其實鉻調試器顯示我陣列在closure scope
,我想這是一個原因,但我仍然無法找到一個解釋,我怎麼能解決它。
其實如果我使用$scope.books = []
它會工作正常,但我不需要$scope
,但我只需要一個JavaScript數組。
在此先感謝。
您可能需要張貼代碼爲貴「ProductFactory」,因爲它可能是你的工廠可能有錯誤,但代碼的小片段你提供的可能不足以診斷你的問題。 – Jesse
您正在將'i.name'推入'users'數組而不是'books'數組。這就是爲什麼它是空的。 – AWolf
傑西,不,它工作正常,我知道它,因爲我說如果我會使用$範圍變量它會很好 – user3127896