首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >角度路径中的动态页面

角度路径中的动态页面
EN

Stack Overflow用户
提问于 2015-06-29 22:29:04
回答 2查看 159关注 0票数 0

我正在尝试在角1.3的动态路由。类似于它所描述的这里这里。这些例子说明了这样的情况:

代码语言:javascript
运行
复制
$routeProvider.when('/:group/:pagename', {
    controller: 'RouteCtrl',
    templateUrl: 'uirouter.html'
})

然后控制器将通过$routeParams访问组和分页名。起作用了

我试图使这个路由更加动态,并且还可以动态地选择模板和控制器:

代码语言:javascript
运行
复制
$routeProvider.when('/:group/:pagename', {
    controller: $routeParams.group + 'Ctrl',
    templateUrl: $routeParams.pagename + '.html'
})

当我在when上放置一个断点时,我可以看到$get属性具有一个函数,该函数将$routeParams作为参数之一。但我想不出如何找回它的价值。

该项目处于非常早期的阶段--我可以使用ui路由器或ng路由器,如果其中任何一个具有此功能的话。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-29 22:43:31

对于动态templateUrl部分,您可以尝试:

代码语言:javascript
运行
复制
$routeProvider.when('/:group/:pagename', {
    controller: "SomeCtrl",
    templateUrl: function(params){return params.pagename + '.html';}
})

但是,不确定是否可以在控制器上完成同样的操作。

票数 2
EN

Stack Overflow用户

发布于 2015-06-29 22:47:14

您可以声明一个将返回templateUrl字符串的函数,而不是直接值,即:

代码语言:javascript
运行
复制
$routeProvider.when('/:group/:pagename', {
    controller: $routeParams.group + 'Ctrl',
    templateUrl: function (routeParams) {
        return routeParams.pagename + '.html';
    }
});

我想controller可能也是如此,但是您必须测试出其中一个,因为我从未将它用于控制器。

尽管如此,如果这里有这么多动态逻辑,也许您可以将这些视图封装为不同的指令,而不是将其作为不同的控制器来处理,而ng-if特定的指令取决于将设置在一个包装控制器中的$routeParams

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31126634

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档