【问题标题】:ngRoute/$routeProvider how to keep the views and controllers?ngRoute/$routeProvider 如何保留视图和控制器?
【发布时间】:2014-10-03 11:36:20
【问题描述】:

所以我写了一个应用程序,有几条路线: 1) 一种显示聊天消息、用户列表等并通过控制器保持最新的 2) 游戏页面 3) 帮助页面

它工作正常,但是当单击#/game-page 的链接时,它实际上会处理聊天视图、控制器等。当我单击#/chat 的链接时,它会重新加载它,但现在必须重新加载所有的视图和数据,这使它变得缓慢和闪烁..

我真的很想隐藏不活动页面的视图,所以当我在它们之间切换时,它的瞬间和一切都在那里。

谁能推荐一个前进的道路?

谢谢

【问题讨论】:

    标签: angularjs


    【解决方案1】:

    视图被缓存,因此不会重新加载。如果您希望数据在更改的视图之间保持不变,则不要将该数据附加到视图的范围,而是附加到外部范围或外部范围中的对象。

    但是,每次您在视图之间切换时,仍然会编译视图。如果这是一个问题,那么我建议使用ngSwitch

    【讨论】:

      【解决方案2】:

      为 ngRoute 重新加载视图和控制器是正常行为。

      可能对于您的情况,您可以创建自己的路由器,捕获路由参数并使用 ng-hide

      隐藏/显示所需的块

      【讨论】:

      • 我希望有一种更“标准”的方式来解决这个问题。如果是这样的话,获取 url 的 # 参数来决定应该是什么的最佳方式是什么显示和隐藏?
      • @MichaelBaldry,您可以将$routeProvider config 设置为reloadOnSearch: false——然后,在您的控制器内部,您可以查看$location.search() // returns ?query=string as hash;将您的查询值分配给$scope;以ng-show 之类的方式注意它。
      猜你喜欢
      • 1970-01-01
      • 2017-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-31
      • 2015-08-30
      • 1970-01-01
      • 2012-04-23
      相关资源
      最近更新 更多