我使用angular js和routeProvider创建了一个webapp。我没有在ng-view中加载部分内容,但是我高举了它导致创建我自己的对象的routParam更改,指示应用程序的哪个部分处于活动状态,如下所示:
lrApp.config(function ($routeProvider) {
$routeProvider
.when('/',{
redirectTo:'/share'
})
.when('/:action',{
controller: "viewController",
template: ' '
})
.when('/:action/:section',{
controller: "viewController",
template: ' '
})
.when('/:action/:section/:subsection',{
controller: "viewController",
template: ' '
})
.otherwise({
redirectTo:'/'
});
});
模板的空白空间和你身体中的空格触发routeParams改变我然后调用viewController,它包含在主体上并包含一个全局可访问的对象,即 ng-show =“url.section == '联系人'“
因此,如果应用的某些部分适用,我会使用此全局对象进行ng-show或ng-switch或ui-。这也允许我创建3级深度链接。
我正在为包含空对象的应用程序的每个主要部分创建一个工厂,然后我将工厂内每个控制器的增长数据存储起来,这样当通过ng-switch重新加载控制器时,数据仍然存在而且我不必再得到它......
我的问题/问题
这是存储我的数据的合适方式吗?或者我应该将此与 cacheFactory 耦合并将该对象存储在 cacheFactory 中,然后在控制器中返回 cacheFactory ?
将数据存储在cacheFactory中,将数据存储在工厂中并将其存放在控制器之外有什么区别...我很困惑?
当我这样做并且我使用ng-switch切换到不同的部分时,信息从DOM中取出,当我切换回来时,数据被重新放入,因为它仍然存储在工厂中但是它显示的内存我的Chrome选项卡每次切换时都会越来越高,即使我没有加载任何新数据......我做错了什么?
这是我如何构建应用程序的粗略示例... test app I built
答案 0 :(得分:0)
我当时对angularjs的理解还不够,但是我的第一个问题是我解析并从DOM中渲染出大块数据,然后又回来了,我认为内存泄漏真的只是DOM内存攀升,因为角度模板引擎不得不重新渲染模板。