Angular 路线中的动态页面
Dynamic page in Angular route
我正在尝试在 Angular 1.3 中使用动态路由。类似于它描述的内容 here and here。这些例子表明是这样的:
$routeProvider.when('/:group/:pagename', {
controller: 'RouteCtrl',
templateUrl: 'uirouter.html'
})
然后控制器将可以通过 $routeParams 访问组和页面名称。行得通
我正在尝试让这个路由更动态一些,并让模板和控制器也能动态选择:
$routeProvider.when('/:group/:pagename', {
controller: $routeParams.group + 'Ctrl',
templateUrl: $routeParams.pagename + '.html'
})
当我在 when
上放置断点时,我可以看到 $get 属性 的函数将 $routeParams 作为参数之一。但我不知道如何检索它的值。
该项目处于早期阶段 - 我可以使用 ui-router 或 ng-router,如果它们中的任何一个具有此功能。
对于动态 templateUrl 部分,您可以尝试:
$routeProvider.when('/:group/:pagename', {
controller: "SomeCtrl",
templateUrl: function(params){return params.pagename + '.html';}
})
但不确定控制器是否也能做到这一点。
您可以声明一个 return 一个 templateUrl
字符串的函数,而不是直接值,即:
$routeProvider.when('/:group/:pagename', {
controller: $routeParams.group + 'Ctrl',
templateUrl: function (routeParams) {
return routeParams.pagename + '.html';
}
});
我想 controller
可能也是如此,但你必须测试一下,因为我从未将它用于控制器。
也就是说,如果你在这个地方有这么多动态逻辑,也许你可以将这些视图封装为不同的指令和 ng-if
某些指令,而不是将其视为不同的控制器,具体取决于 $routeParams
哪个会被设置在一个wrapping controller中?
我正在尝试在 Angular 1.3 中使用动态路由。类似于它描述的内容 here and here。这些例子表明是这样的:
$routeProvider.when('/:group/:pagename', {
controller: 'RouteCtrl',
templateUrl: 'uirouter.html'
})
然后控制器将可以通过 $routeParams 访问组和页面名称。行得通
我正在尝试让这个路由更动态一些,并让模板和控制器也能动态选择:
$routeProvider.when('/:group/:pagename', {
controller: $routeParams.group + 'Ctrl',
templateUrl: $routeParams.pagename + '.html'
})
当我在 when
上放置断点时,我可以看到 $get 属性 的函数将 $routeParams 作为参数之一。但我不知道如何检索它的值。
该项目处于早期阶段 - 我可以使用 ui-router 或 ng-router,如果它们中的任何一个具有此功能。
对于动态 templateUrl 部分,您可以尝试:
$routeProvider.when('/:group/:pagename', {
controller: "SomeCtrl",
templateUrl: function(params){return params.pagename + '.html';}
})
但不确定控制器是否也能做到这一点。
您可以声明一个 return 一个 templateUrl
字符串的函数,而不是直接值,即:
$routeProvider.when('/:group/:pagename', {
controller: $routeParams.group + 'Ctrl',
templateUrl: function (routeParams) {
return routeParams.pagename + '.html';
}
});
我想 controller
可能也是如此,但你必须测试一下,因为我从未将它用于控制器。
也就是说,如果你在这个地方有这么多动态逻辑,也许你可以将这些视图封装为不同的指令和 ng-if
某些指令,而不是将其视为不同的控制器,具体取决于 $routeParams
哪个会被设置在一个wrapping controller中?