gpt4 book ai didi

angularjs - Angular ui 路由器 : ui-views vs directives?

转载 作者:行者123 更新时间:2023-12-02 19:29:05 24 4
gpt4 key购买 nike

angular ui-router允许多个嵌套 View 。这些可互换 View 的作用似乎与指令的作用重叠。

使用(多个、嵌套)ui-view 与 Angular 的指令相比有何优缺点?

更新

状态和路由是两个不同的功能。状态允许您交换partial.html 模板及其 Controller ,您可以(optionally?)指定相应的 URL/路由。

在 Tim Kindberg(ui-router 开发者)的电子邮件回复中:

ui-view is a directive, so if you use it you are using a directive that has been worked on particular to work well with the rest of the ui-router module. I can't imagine it being easy to roll your own directive to replace this functionality.

对此,您似乎有两个选择:

普通指令:

app.directive('myDir1', {/*  controller: ... */})
.directive('myDir2', {/* controller: ... */})

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 是指令,那么很明显它们的用法是不同的。协调这些模型难道没有意义吗?

最佳答案

如果您使用 Angular UI 路由器的内联 View 来指向指令怎么样?

假设您有一个处理用户帐户上的 CRUD 操作的表指令。我们会说该指令名为user-admin。我们的路线文件如下所示:

.state('users', {
url: '/users',
template: "<user-admin>"
});

这会给你带来很多美好的东西:

  • 允许您拥有直接指向指令的网址
  • 当状态只是指令时,消除了需要两个模板( View 模板和指令模板)的重复
  • 允许您开始将更多 Controller 逻辑转移到指令中,为 Angular 2.0 做准备。请参阅herehere .

关于angularjs - Angular ui 路由器 : ui-views vs directives?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22790209/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com