我正在构建一个带有角度UI路由器的静态HTML网站,用于导航。我基本上有一个带有多个(10+)html模板(页面)的ui-view加载到该视图中。我的所有模板页面都在一个名为“pages”的目录中。
所以我基本上想知道我们是否只能在$ stateProvider中定义一个状态来动态分配多个模板网址,而不是为每个HTML模板页面编写不同的状态(如下所述)。
$stateProvider
.state('home', {
url: '/home',
templateUrl: 'pages/home.html',
controller: 'homeController',
controllerAs: 'home'
})
.state('viz', {
url: '/viz',
templateUrl: 'pages/viz.html',
controller: 'vizController',
controllerAs: 'viz'
})
.state('about', {
url: '/about',
templateUrl: 'pages/about.html',
controller: 'aboutController',
controllerAs: 'about'
})....
非常感谢任何帮助。
答案 0 :(得分:7)
这不应该那么困难,例如检查:
我们可以使用Loggers
和$stateParams
来
templateProvider
我们还可以将参数.state('general', {
url: '/{type}',
//templateUrl: 'pages/home.html',
templateProvider: ['$stateParams', '$templateRequest',
function($stateParams, $templateRequest)
{
var tplName = "pages/" + $stateParams.type + ".html";
return $templateRequest(tplName);
}
],
// general controller instead of home
//controller: 'homeController',
controller: 'generalController',
controllerAs: 'ctrl'
限制为预期值之一,请参阅:
type
也有非常相似的Q& A有工作的plunker和更多细节:
另一个例子可以在这里找到: