我在我的主app.js中有路由配置。异步http.get调用完成后加载html模板
// app.js
angular.module('myApp', ["ngRoute"])
.config(['$routeProvider', function ($routeProvider) {
$routeProvider.when('/', {
templateUrl: '/templates/company-list.html',
controller: 'CompanyListCtrl as companyListCtrl'
}).when(...
尽管在app.js中,我有一个指令将图像渲染为模板div的背景css元素。
/app.js
// Directives
angular.module('myApp')
.directive('backImg', function() {
return function (scope, element, attrs) {
var url = attrs.backImg;
element.css({
'background-image': 'url(' + url + ')',
'background-size': 'cover'
});
};
});
CompanyListCtrl控制器依赖于调用服务器并返回数据的http服务。该数据包含上述指令的“网址”。
//controllers.js
angular.module('myApp')
.controller('CompanyListCtrl', ['CompanyService', function (CompanyService) {
var self = this;
self.companies = [];
CompanyService.getCompanies().then(function (response) {
self.companies = response.data;
});
}]);
我的'company-list.html'模板的指令在异步数据返回前呈现。我想我需要在路由配置中使用'resolve',但是当$ htt.get调用作为外部服务实现时,依赖关系应该在那里?
如果我有$ routeParams.companyId,我要添加到CompanyService.getCompanies($ routeParams.companyId),我需要添加像公司的依赖: '$ routeParams', 'CompanyService' .. 。和控制器逻辑类似于原始的答案? – Maxim 2015-03-03 04:03:52
注入$ route并使用$ route.current.params.companyId。我会更新答案 – 2015-03-03 04:04:52