【发布时间】:2023-04-06 20:16:01
【问题描述】:
angular ui-router 允许多个嵌套视图。这些可互换视图的作用似乎与指令的作用重叠。
使用(多个,嵌套)ui-views 与 angular 的指令有什么优缺点?
更新
状态和路由是两个不同的功能。状态允许您交换 partial.html 模板及其控制器,您可以(optionally?) 指定相应的 URL/路由。
在 Tim Kindberg(ui-routerdev)的电子邮件回复中:
ui-view 是一个指令,所以如果你使用它,你就是在使用一个指令 已经特别努力与其他人一起工作 ui路由器模块。我无法想象自己动手做起来很容易 替换此功能的指令。
对此,您似乎有两种选择:
普通指令:
app.directive('myDir1', {/* controller: ... */})
.directive('myDir2', {/* controller: ... */})
vs ui-view“指令”
$stateProvider.state('route1', {
/* url: "/route1", // optional?? */
views: {
"myDir1": { templateUrl: "myDir1.html" /* , controller: ... */ },
"myDir2": { templateUrl: "myDir2.html" /* , controller: ... */ }
}
})
额外问题:
normal angular directive features 是否可用于查看?如:
- 转置
- 替换
- 隔离范围
- 编译/链接函数
如果 ui-views 是指令,那么它们的用法显然是不同的。协调这些模型不是很有意义吗?
【问题讨论】:
-
支持 - 尚未得到答复。我刚刚登录 SO 来问完全相同的问题,因为 ui-router 的明确指令和视图相互重叠。我的应用程序有两个部分:导航、内容,我已将它们放在两个指令中。在导航部分中,我使用指向状态的 ui-sref 链接。如何使用 ui-router 视图更改我的内容,这是一个 angular.directive。边缘有点模糊。
标签: angularjs angular-ui angular-ui-router