【发布时间】:2014-11-12 14:09:54
【问题描述】:
我正在尝试使用 rootscope 值加载模板文件作为其名称。 我有一个初始化控制器,它将 $rootScope.template 设置为“whatever.html”,然后我的路由如下:
$stateProvider.state('/', {
url: '/',
access: 'public',
views: {
page: {
controller: 'HomeCtrl',
templateProvider: function($templateFactory, $rootScope) {
return $templateFactory.fromUrl('/templates/' + $rootScope.template);
}
}
}
});
但这不起作用。它实际上冻结了整个 chrome,因此我必须终止进程才能停止它......我也用 templateUrl 尝试过,但没有结果。
那么我如何将我的动态模板文件与 UI-router 一起使用?
【问题讨论】:
-
你能创建一个 plunkr.co 来在上下文中显示这个失败吗?
-
templateProviders 似乎还可以。我为此创建了一个 plunker:plnkr.co/edit/x8tsIBkKHM1cxfstyESt?p=preview 所以,问题可能不在这里。
-
是的,似乎工作正常。我的问题是/是这个 $rootscope 值是来自数据库的查询值。现在一切正常,如果我手动声明 $rootScope.template 但查询花费的时间太长(或者我真的不知道问题是什么),因此在 templateProvider 需要它的时候还没有准备好。
-
任何想法如何获取我的模板名称并在我的路由器中使用它?像上面的问题一样,但不是 $rootScope.template = "whatever.html" 而是一个查询值?
标签: angularjs angular-ui-router