我在我的主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