我使用 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 == 'contacts'"
所以我使用这个全局对象来 ng-show 或 ng-switch 或 ui-如果应用程序的某些部分在适用时就位。这也允许我创建 3 级深度链接。
我正在为应用程序的每个主要部分创建一个工厂,其中包含一个空对象,然后将增长的数据存储在工厂内的每个控制器中,这样当通过 ng-switch 重新加载控制器时,数据仍然存在,我不这样做不必再得到它...
我的问题/问题
这是存储我的数据的适当方式吗?或者我应该将它与cacheFactory耦合并将该对象存储在cacheFactory中,然后在控制器中返回cacheFactory?
将数据存储在 cacheFactory 和仅将数据存储在工厂中并将其放在控制器之外有什么区别......我很困惑?
当我这样做并使用 ng-switch 切换到不同的部分时,信息会从 DOM 中取出,当我切换回来时,数据会被放回,因为它仍存储在工厂中,但它为我的选项卡显示的内存在即使我没有加载任何新数据,每次我切换回来时,chrome 都会不断攀升......我做错了什么?
这是我如何构建应用程序的粗略示例...我构建的测试应用程序