我有以下的在我的應用程序代碼(剝離出來沒有用的代碼,所以可能有錯別字)Angularjs力的決心數據
基本上我需要確保$scope.takeovers
有數據在執行任何其他代碼之前。
當瀏覽器監控網絡活動,我可以看到/api/pagedata
被稱爲beeing併成功輸出我想在$scope
然而$scope.takeovers
未定義總是數據。
目前我有這個不工作。
app.js
var app = angular.module('app', ['ui.router']);
app.config(function($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise('/');
$stateProvider
.state('index', {
url : '/',
resolve: {
takeovers: function(pageSetup) {
return pageSetup.getData().$promise;
}
},
controller: 'newFormController',
templateUrl: '/templates/form.html'
})
});
app.controller('newFormController', ['$scope', 'takeovers', function($scope, takeovers) {
$scope.takeovers = takeovers.data; //Is empty when controller is initiated...
/* continue with code that rely on $scope.takeovers */
}]);
app.factory('pageSetup', ['$http', function($http) {
var res = {
getData: function() {
var promise = $http({
method: 'GET',
url: '/api/pagedata'
});
promise.success(function(data, status, headers, conf) {
return data;
});
return promise;
}
}
return res;
}]);
/API/pagedata結果
["2015-11-01","2015-11-02","2015-11-03","2015-11-08","2015-11-09","2015-11-10","2015-11-11","2015-11-15","2015-11-16","2015-11-29","2015-11-30"]
我缺少什麼?
解決方案是確保在實例化控制器之前解決所有數據。看着你的代碼,我的猜測是在接管中沒有現場數據,因爲接管本身就是你的數據。 $ scope.takeovers = takeovers;應該就夠了。 – skubski
$ promise從哪裏來?有沒有這樣的屬性 – Avi