1

我是一个 Angular 新手,正在开发具有几个视图的 Phonegap 应用程序:地图、列表和搜索。

当用户交互时,每个视图都会累积一些 UI 状态:拖动地图、列表获取滚动位置、为列表项打开详细视图、执行搜索等。我希望用户成为能够在视图之间导航而不会丢失此状态。

当我将我的视图放在 ng-view 中的部分视图中,并且我的导航链接使用href="#/path"或 ng-click 触发location.path(path)时,控制器将运行并且状态被删除。说得通。

一种选择是 ng-include 所有部分 index.html 和 ng-show 基于用户的导航操作。但是,我发现 DOM 中的这种复杂性会导致 Phonegap 性能不佳。我还觉得通过避开路由,我失去了使用 Angular 的主要好处之一。

另一个想法:导航点击会导致浏览器历史的遍历。然而,并行维护所有视图的状态似乎很棘手。

我的问题:这有什么好的模式吗?

FWIW 目前使用 Phonegap 3.0 和 Angular 1.1.5。谢谢你的时间。

4

2 回答 2

2

如果您想在并行视图中保留 DOM 的状态,可以使用 ui-router 的扩展名为ui-router-extras。它有一个很好的演示,在选项卡之间切换时具有状态转换和完整的 DOM 保存。

在此处输入图像描述

于 2014-10-24T13:27:41.873 回答
1

您可以保留所有需要在服务中重新加载控制器之间保留的数据

这里有一个简单的例子

使用 Angular UI-Router 保留状态

这里有一个更复杂的例子,包括在用户离开页面然后按下后退按钮时恢复状态

在AngularJS中的视图之间更改时保持范围模型

于 2013-09-04T08:11:31.353 回答