在页面视图之间为同一路径重用AngularJS模板

时间:2013-04-27 09:53:08

标签: angularjs single-page-application esri jsapi

我正在使用第三方JS API,它会在我的角度模板上创建一个附加到html元素的对象。

每次加载模板时,我都希望重用已创建的对象,并将其重新附加到正确的html元素。

In this plunker您可以看到问题。以下是重现的步骤。我非常感谢有关如何在页面加载之间保留第一个对象的任何建议。

提前致谢。

问题描述

要理解这个问题:

      
  • 点按上方的“显示地图”链接。正确加载“map.html”模板并显示地图。
  •   
  • 移动地图或放大一点以便更改地图
  •   
  • 在地图页面点按“显示主页”链接以返回此页面。
  •   
  • 现在,点按主页链接返回此页
  •   
  • 现在,再次点击“显示地图”,您可以看到地图已重新创建。

我希望“map.html”模板能够重用现有的地图对象,以便地图在页面视图之间保持不变。

2 个答案:

答案 0 :(得分:1)

这是一个非常重要的问题。

angular-gm模块重用地图实例,因此没有内存泄漏。还有angular-google-maps

答案 1 :(得分:0)

我是在routeproviderapi

的帮助下完成的

http://docs.angularjs.org/api/ng.$routeProvider

您有机会拥有一个解析器,它可以解析控制器渲染模板所需的所有依赖项。 我的resolover缓存了特定routeparams的对象,并将返回这个已经实例化的对象。

所以基本上你的map-object是你的控制器的依赖。解析器管理此依赖项的注入,您可以在那里实现一些缓存。