我想通過負載上的控制器在angular.js中調用一個服務並返回一個承諾。然後我期望履行承諾並更新DOM。這不是發生了什麼。要清楚,我沒有收到錯誤。代碼如下。AngularJS:服務數據綁定
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;
};
});
裏面的「那麼()」中的服務功能,我記錄結果,我得到什麼我希望在那裏,它只是從來沒有更新DOM。任何和所有的幫助,將不勝感激。
我猜想,因爲它變得透明,使用'then'表示承諾是從底層調用返回的。我更喜歡它。 :) – dmahapatro
這可能的確是原因,這也是我更喜歡自己包裝的原因之一。另一個當然是我已經配置了restangular,總是給我完整的repsonse包括頭文件。 –