angularjs - AngularJS ui-router 的替代品

标签 angularjs web-applications angular-ui-router web-frameworks

我刚刚开始了一个新项目。我正在构建一个“具有原生感觉”的 Web 应用程序,它将在全屏浏览器中的远程控制设备上运行(无地址栏,固定分辨率)。 UI 基本上由多个全屏 View 组成。 AngularJS 目前是首选武器,原因有很多。我一直在尝试“ui-router”及其“状态”来构建不同的 View 。例如:

/#/desktop
/#/menu
/#/videoStore/posterView
/#/videoStore/listView

我非常喜欢每个 View 都有一个模板、一个 Controller 和一个 URL。切换 View 时页面不会重新加载这一事实至关重要。但是,有些东西是我欠缺的。

双缓冲

我希望能够在过渡到下一个状态/ View 之前准备好它。 ui-router 提供了一系列事件,这些事件将 不是 做。 onEnter , $stateChangeStart$stateChangeSuccess都在 state/view controller 之前调用甚至被 build 。我宁愿这些事件称为 过渡前的 Controller 。例如 onStart首次启动时和 onResume在简历上。

历史行为

每次我进入状态时似乎都会重新构建状态,这意味着模板会再次添加到 DOM 中,并实例化一个新的 Controller 。这是不必要的,应该会影响性能。离开 videoStore 时无需重建菜单。事实上,我希望能够让它完全一样,专注于子文件夹中的同一项目等,而不必重新创建它。

key 处理

我还没有弄清楚如何确保键进入正确的状态/ View 或 subview 。我正在考虑向 body 添加一个监听器,然后将 key 发送到当前范围。虽然我不认为这样做会因为在一个状态中有多个 View 时哪个范围是“事件的”的不确定性。某种onFocus状态/ View Controller 上的事件会很棒。此外,除非遍历 $$ (私有(private))字段,否则似乎无法从 Angular 获取“事件”范围。

好的。谢谢阅读。

以下是我的问题:
  • 他们是否有某种方式来“凑合” ui-router ?我只评估了两天,可能错过了很多。
  • 是否有值得的 Angularjs 替代 ui-router在外面吗?
  • 是否有任何其他 Javascript 框架可以完成与我描述的方式相似的这些事情?
  • 最佳答案

    你应该对 ui-router 没问题。关于列出的大多数问题,您似乎只需要尽量减少您在 Controller 中执行的代码量,并将事情转移到工厂/服务/供应商。通过这种方式,您可以更严格地控​​制数据的获取方式。

    关于 DOM,如果您正确使用嵌套状态,那么您实际上不应该在状态之间转换时重新加载导航或其他部分。

    最后一点,无论底层框架是什么,键盘处理都是一个难题。您可以使用更改焦点的指令进行检查(如果没有可用的东西可以满足您的需要,然后学习自己滚动,假设这里的 tabindex 不够好)。

    就我所见,ngRoute 或 uiRouter 是您的选择,就客户端路由而言,uiRouter 功能更丰富。

    关于是否有“更好”的框架可用,主要基于意见(主观)或不知道我们可以判断技术的参数的问题不适合 StackOverflow。

    关于angularjs - AngularJS ui-router 的替代品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27523220/

    相关文章:

    javascript - 如何使用 python Selenium 或 JavaScript 控制台设置 AngularJS Controller 变量的值?

    php - 如何上传 JSON 文件以在 Javascript 运行时创建对象而不更改服务器端脚本?

    web - 我可以在中国测试我的 web 应用程序以查看被阻止的内容吗?

    javascript - 在基于本地文件的应用程序中(文件为 ://)),是否可以使用 AngularJS 进行 HTML5 模式 URL 路由

    javascript - Ui路由器 : Every state shows template except one

    javascript - 范围名称未在 Controller 中隔离?

    angularjs - 当请求来自另一个域时,如何在 sails JS 后端应用程序中保留身份验证状态?

    javascript - Angular 范围不会在 View 上更新

    CSS 和 float 属性

    angularjs - 使用AngularJS排除url中的路径