我正在尝试动态更改路线中的templateUrl
。问题是在我的函数中,$rootScope
及其参数不可用。
有人有想法解决这个问题吗?
angular.module('name').config(function ($routeProvider) {
$stateProvider.state('tickets', {
url: "/tickets",
templateUrl: checkPartnerType,
controller: 'TicketListController'
})
});
function checkPartnerType($rootScope){
if( $rootScope.user.partner.type == 'NAT'){
return "core/partials/b2c-ticket-list.html";
}else{
return "core/partials/b2b-ticket-list.html";
}
}
答案 0 :(得分:0)
如此处所述
设置 templateUrl
:
html模板作为字符串或返回html模板的函数 作为uiView指令应该使用的字符串。这个 property优先于templateUrl。
如果template是一个函数,将使用以下函数调用它 参数:强>
从当前$ location.path()中提取的
{array.<object>}
- 状态参数 通过应用当前状态
所以,唯一的参数可能是状态参数。但我们还有另一种选择 - templateProvider
:
返回HTML内容字符串的提供程序函数。
templateProvider: function(MyTemplateService, params) { return MyTemplateService.getTemplate(params.pageId); }
使用 templateProvider
,我们可以使用所有IoC电源,并要求注入任何服务。检查这些: