2013-04-10 63 views
1

我已经使用angular js和routeProvider创建了一个webapp。我不加载NG-视图中的谐音,但我劫持了routParam改变,它会导致创建自己的对象,指明哪些应用程序的一部分是活跃见下图:添加删除控制器时AngularJS浏览器内存不断攀升

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秀=“url.section ==‘接触’”

所以我用这个全局对象为ng-show或ng-switch或ui - 如果应用程序的某些部分适用于适当位置。这也使我能够创建3个级别的深层链接。

我为包含一个空对象的应用程序的每个主要部分创建一个工厂,然后将每个控制器的增长数据存储在一个工厂内,以便当通过ng-switch重新加载控制器时,数据仍然那里,我没有再得到它...

我的问题/问题

这是要保存我的数据的适当方法?或者我应该将它与cacheFactory耦合并将该对象存储在缓存工厂中,然后在控制器中返回缓存工厂

将数据存储在cacheFactory中,并将数据存储在工厂中并将其存储在控制器之外,这有什么区别......我很困惑?

当我这样做,并使用ng-switch切换到不同的部分时,信息从DOM中取出,当我切换回数据时,由于它仍然保存在工厂中,但它显示的内存对于我在Chrome中的选项卡,每次切换回来时都会越来越高,即使我没有加载任何新数据......我做错了什么?

这是我如何建立自己的应用程序一个粗略的样本... test app I built

回答

0

我没有足够的了解当时angularjs,但我的第一个问题是,我是去渲染和渲染的大块数据从DOM中移出,然后返回,我认为是内存泄漏,实际上只是DOM内存攀升,因为角模板引擎不得不重新渲染模板。