我建這個廠服務:角服務/工廠未定義的錯誤
spApp.factory('siteCollection', function(){
return {
usersObject : [],
getUsers : function(){
$().SPServices({
operation: "GetUserCollectionFromSite",
completefunc: function(xData, Status) {
var responseXML = $(xData.responseXML);
responseXML.find("User").each(function() {
usersObject.push({
id: $(this).attr("ID"),
name: $(this).attr("Name"),
domainAccount: $(this).attr("LoginName")
});
});
}
});
return usersObject;
}
}
})
它想回到我在頂部聲明,但控制檯是給我的對象未定義錯誤的usersObject。
這是控制器:
spApp.controller('userCtrl',
function userCtrl($scope,siteCollection){
$scope.users = siteCollection.getUsers();
}
);
我很新的角度。
嘿第一期改問題。但是,我並不真正瞭解這裏的承諾需求。我正在使用ng-repeat,它似乎在工作。承諾如何提供幫助?謝謝。 – Batman
使用外部庫(jQuery/SPServices)從服務器加載數據。當這個進程異步運行時(並且我希望這樣做)腳本會繼續運行,並且只要數據加載完成,就會執行回調。但是Angular不知道這個過程何時結束,因此它不會執行摘要循環,不會執行監視,更新視圖等。當您使用承諾時,在承諾的執行/拒絕處理程序執行後,Angular運行一個摘要循環。 –