我想在我的AngularJS應用程序的路線中使用resolve
從我的RESTful API檢索數據並將其設置在我的$scope
上。
我已經嘗試了以下無濟於事 - $scope.forms
沒有被設置:
angular.module('mycompany.resources').factory('Forms', ['$http', function($http) {
var Forms = {};
Forms.all = function() {
return $http.get('/api/forms.json')
};
return Forms;
}]);
angular.module('mycompany.admin.forms', ['mycompany.resources']);
angular.module('mycompany.admin.forms').config(['$routeProvider', function($routeProvider) {
$routeProvider
.when('/forms', {
controller: 'formListController',
templateUrl: 'forms/formList.html',
resolve: {
forms: ['Forms', function(Forms) {
return Forms.all()
.success(function(response) {
return response;
})
.error(function() {
return false;
});
}]
}
});
}]);
angular.module('mycompany.admin.forms').controller('formListController', ['$scope', 'Forms', function($scope, Forms) {
'use strict';
}]);
和我的模板:
<div ng-controller="formListController">
<ul class="form-list">
<li ng-repeat="form in forms">
<a class="form" href="#/forms/{{form._id}}">
<span class="title">{{form.title}}</span>
<span ng-if="form.lastPublished">Last published {{form.lastPublished | date:'M/d/yy'}}</span>
</a>
</li>
</ul>
</div>
這回Forms.all()是不夠的,如果有路徑沒有設置 – Whisher
另外,嘗試注入「形式」到你的控制器(小F)並分配$ scope.forms =形式的錯誤。可能想更改名稱以避免含糊不清。 –