Я построил эту заводскую службу:Угловая Service/Factory неопределенной ошибка
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 запускает цикл дайджеста после выполнения обработчиков выполнения/отклонения обещания , –