[英]Dynamic page in Angular route
我正在尝试在Angular 1.3中进行动态路由。 类似于这里和这里描述的东西。 这些示例建议如下:
$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';}
})
但不确定是否可以对控制器执行相同操作。
除了直接值,您可以声明一个函数,该函数将返回templateUrl
字符串,即:
$routeProvider.when('/:group/:pagename', {
controller: $routeParams.group + 'Ctrl',
templateUrl: function (routeParams) {
return routeParams.pagename + '.html';
}
});
我想对于controller
也可能如此,但是您必须对其进行测试,因为我从未将其用于控制器。
话虽这么说,如果您在这个地方有太多的动态逻辑,那么也许可以将这些视图封装为不同的指令,而ng-if
某些指令则取决于$routeParams
,这将在一个包装中进行设置,而不是将其视为不同的控制器控制器?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.