angularjs - Angular UI Router - 何时使用抽象模式/嵌套/命名 View ?

标签 angularjs angular-ui-router

无法从文档中找出这一点:

我的用例:一个大型 SPA,页面上有多个“小部件”或“应用程序” - 每个都有一个 Controller 、数据和模板。最好每个都应该是一个 View 。目前,每个模板都加载了 ng-include ,这既烦人,又不分离兴趣,而且工作效果不佳,因为 View Controller 可能在主 ctrl 解析之前初始化 - 这就是我们切换的原因到 UI 路由器。大多数情况下,url 不是嵌套的 - 例如 /page url 可以包含 ListView 、用户 View 等。

我想将其移至 UI 路由器(在我已将现有路由移至 UI 路由器并检查一切正常工作之后),并且我不确定组成的正确方法是什么小部件/ View 在一起。我是否应该使用一个抽象 View 来保存 /page 模板(并包含路由)并将每个小部件设置为该抽象内的 View ?或者如果没有摘要它会起作用吗?我应该使用命名还是嵌套(在某处看到命名 View 被视为代码味道,不知道为什么)。在选项之间进行选择的准则是什么?设置此选项的最佳实践是什么?我很乐意就此提供任何建议。

谢谢!

最佳答案

如果您想在某些子状态上“添加”url/状态,抽象状态很有用,我认为这不是您的最佳选择。使用点分隔状态,例如 pagepage.subpage 。我想对你有用。一个好的做法是在模块配置的状态内设置 Controller 、模板和解析,这样您就可以将状态用作将模型链接到 View 的单段代码。 查看 wiki 中 ui-router 的文档以获得更好的理解。

关于angularjs - Angular UI Router - 何时使用抽象模式/嵌套/命名 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20059541/

相关文章:

javascript - 启动 Angular 服务器时出错

javascript - 使用多个选择选项的搜索功能 - angularjs

angularjs - 如何让 Angular 路由器(或 ui-router)接受像 `#foo` 这样的路由而不是重定向到 `#/foo` ?

angularjs - Angular 1.x 中的 UI-Router v1.0+ $transitions 服务

javascript - 其他指令(如 ng-init)或事件(如 stateChangeStart)会触发特定路由

javascript - 用户界面路由器 : Transform parameter from URL

javascript - 如何使失败的路由解析 promise 加载不同的模板 URL?

javascript - 使用 ng-Route 刷新页面的任何其他方式

javascript - 元素 ID 的 Angular 插值导致向属性值添加尾随空格

angularjs - 如何使用 ui-router 在模板内获取路由参数?