我正在使用AngularJS和ui-state路由器,我非常喜欢并运行良好,但我有一个关于数据加载的查询。在我的routes.js文件中,我定义了以下路由
.state("meetings.show", {
url: "/{meetingId}",
views: {
"@default": {
controller: "MeetingsCtrl",
templateUrl: "/templates/meetings/show.html"
}
}
})
.state("meetings.show.conclude", {
url: "/conclude",
views: {
"@default": {
controller: "MeetingsCtrl",
templateUrl: "/templates/meetings/conclude.html"
}
}
})
在meetings控制器中,当处于meetings.show状态时,它会获取大量数据,这很棒。我现在想做的是显示结束状态但是阻止重新加载数据。
有没有什么好方法可以保存数据,如果我要回到页面并且必须重新加载它,重新加载数据似乎非常浪费。
答案 0 :(得分:0)
看起来您想要共享整个控制器 - 而不仅仅是数据 - 并更改视图。
一种解决方案是使用抽象基本状态meetings.show
并创建两个子状态:meetings.show.loading
和meetings.show.conclude
。
使用这样的结构,您可以在抽象基本状态上定义控制器,并仅在两个子状态上设置templateUrl(允许它们继承父控制器)。
我可能已经错过了这一点。如果我还没有解决您的使用案例,您是否介意更深入地描述meetings.show
和meetings.show.conclude
的行为/外观?