有一个可行的例子。而不是
templateUrl我们应该使用
templateProvider。这是新的状态def:
$stateProvider .state('parentstate.childs', { url: '/edit', views: { "view1@parentstate": { templateUrl: 'views.view1.html', controller: 'view1Ctrl', }, "view2@parentstate": { templateProvider: function($http, $stateParams, OBJ) { var obj = OBJ.get($stateParams.objId); var templateName = obj.id == 1 ? "views.view2.html" : "views.view2.second.html" ; return $http .get(templateName) .then(function(tpl){ return tpl.data; }); }, controller: 'view2Ctrl', } } });我们为什么要使用这种方法?如此处记录:
范本
TemplateUrl
…templateUrl也可以是返回url的函数。 它采用一个预设参数stateParams,该参数不会被注入。TemplateProvider
或者您可以使用 模板提供程序 函数,该函数 可以被注入,可以访问locals 并且必须返回模板HTML,如下所示:
检查
TemplateProvider此工作插销中的基础解决方案



