繁体   English   中英

角路由中的动态页面

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM