今天早上我只是在这个问题上遇到了麻烦。
核心路由配置 (core.client.routes.js)
这是我的主要路线的核心配置功能:
$stateProvider.state('home', {
url: '/',
templateUrl: 'templates/main.client.view.html',
controller:'MainCtrl',
resolve: {
initialData: function(mainControllerInitialData) {
return mainControllerInitialData();
}
}
});
*注意:确保您的服务以 camelCase 而不是 PascalCase 命名;否则你的taskrunner中的默认任务(我正在使用gulp)将会变得不稳定
在 resolve 方法中作为承诺返回的服务 (mainControllerInitialData.service.js)
这是服务本身:
'use strict';
var ser = angular.module('mean')
.factory('mainControllerInitialData', function(queryPrismicDocument, $q) {
return function() {
var qpd = queryPrismicDocument;
var restaurantMenu = qpd.query('[[:d = at(document.type, "restaurantMenu")]]', 'restaurantMenu');
console.log('i am MainControllerInitialData.service.js');
return $q.all([restaurantMenu]).then(function(results){
return {
restaurantMenu: results[0]
};
});
};
});
主控制器(main.controller.js)
这是路由配置(“MainCtrl”)中列出的控制器,我通过 resolve 方法将值注入其中
'use strict';
angular.module('core')
.controller('MainCtrl', ['$scope','initialData',function ($scope, initialData) {
console.log('i am MainCtrl...');
console.log('i am at the top of the pack');
console.log('i am initialData:');
console.log(initialData);
$scope.restaurantMenu = initialData.restaurantMenu[0];
}]);