您好我已經做出了控制器:爲什麼我的控制器中的執行順序在AngularJS中沒有正確的順序?
app.controller('CalendarCtrl', ['$scope', 'apiService', function($scope, apiService) {
/* event source that contains custom events on the scope */
$scope.events = [];
apiService.get('events').then(function(results) {
$scope.events = results.data;
console.log(results.data);
});
console.log($scope.events);});
我用兩個console.log
檢查輸出和調用的順序。而results.data
應該返回:
[Object]
---> [0]: Object
------> all_day: "1"
------> end: "2016-11-23 10:52:21"
------> id: "1"
------> start: "2016-11-22 10:52:21"
------> title: "Test Event"
------> url: null
---> [1]: Object
...
但結果,我得到我的第一個輸出爲空對象,應在第二console.log
的輸出。這意味着控制器跳過apiService.get
函數並首先運行代碼的其餘部分。
然後我試圖
$scope.events = [];
$scope.events = apiService.get('events').then(function(results) {
return $scope.events = results.data;
});
console.log($scope.events);
但是這一次,我得到:
d {$$state: Object}
---> $$state: Object
------> status: 1
------> value: Array[1]
---------> [0]: Object
------------> all_day: "1"
------------> end: "2016-11-23 10:52:21"
------------> id: "1"
------------> start: "2016-11-22 10:52:21"
------------> title: "Test Event"
------------> url: null
成經我希望$$state
內的結果。
有人能告訴我爲什麼會發生這種情況嗎?謝謝。
請包括服務代碼。 – alphapilgrim