Angular UI路由器 - 动态TemplateURL

时间:2015-11-16 11:50:23

标签: angularjs angular-ui-router state

我正在构建一个带有角度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'
})....

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:7)

这不应该那么困难,例如检查:

Angular UI-Router dynamic routing based on slug from API Ajax Call. Load view based on slug

我们可以使用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

Angular js - route-ui add default parmeter

也有非常相似的Q& A有工作的plunker和更多细节:

AngularJS ui-router - two identical route groups

另一个例子可以在这里找到: