角度ui-router维护标签之间的状态

use*_*135 6 twitter-bootstrap angularjs angular-ui-router

想知道在标签之间保留状态的最佳方法.我使用bootstrap选项卡和角度ui-router.我在其中一个标签中有一个谷歌地图,当用户选择该标签时,不想重新加载地图.请指教.

谢谢

Jos*_*osh 1

我认为您正在寻找的内容已在本期中讨论:https://github.com/angular-ui/ui-router/issues/63

他们主要讨论 iframe,但我相信 Google 地图也应该如此。不幸的是,他们在线程中决定这不应该在核心版本中实现。我还没有尝试过他们提供的指令(如果有机会我会让你知道它是如何进行的),但你也许能够得到一些与之相关的东西。

我实际上遇到过你遇到的确切问题。我的解决方案是使用样式按钮作为我的选项卡,并使用 ng-show 作为地图选项卡:

<div id="info-btns">
  <button class="btn" ng-model="view" btn-radio="'info'">
    Info
  </button>
  <button class="btn" ng-model="view" btn-radio="'map'" ng-click="loadMap()">
    Map
  </button>
</div>


<div class="content" ng-show="view != map">
  <div ui-view="info"></div>
</div>

<div id="map-container" ng-show="view == 'map'">
  <div id="map" class="content" sitemap>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

ng-show 只是使用 display:none 来隐藏地图,因此不会导致刷新。您需要在第一次未隐藏地图时触发地图加载,否则它将无法正确渲染,因此loadMap()

如果有机会我会在实践中建立一个jsfiddle。