我正在尝试通过加载控制器调用 angular.js 中的服务并返回一个承诺。然后,我希望能兑现承诺并更新 DOM。这不是发生的事情。需要明确的是,我没有收到错误。代码如下。
app.controller('TutorialController', function ($scope, tutorialService) {
init();
function init() {
$scope.tutorials = tutorialService.getTutorials();
}
});
<div data-ng-repeat="tutorial in tutorials | orderBy:'title'">
<div>{{tutorial.tutorialId}}+' - '+{{tutorial.title + ' - ' + tutorial.description}}</div>
</div>
var url = "http://localhost:8080/tutorial-service/tutorials";
app.service('tutorialService', function ($http, $q) {
this.getTutorials = function () {
var list;
var deffered = $q.defer();
$http({
url:url,
method:'GET'
})
.then(function(data){
list = data.data;
deffered.resolve(list);
console.log(list[0]);
console.log(list[1]);
console.log(list[2]);
});
return deffered.promise;
};
});
在服务的“.then()”函数内部,我记录了结果,我得到了我期望的结果,它只是永远不会更新 DOM。任何和所有的帮助将不胜感激。