【问题标题】:What is the recommended approach to maintain view state using ionicframework / angularjs?使用 ionicframework / angularjs 维护视图状态的推荐方法是什么?
【发布时间】:2014-05-09 10:13:16
【问题描述】:

我也是 Ionic Framework 和 AngularJs 的新手。

我正在开发的应用程序有一个视图,用户可以在其中搜索,结果显示在列表中。当用户单击其中一个列表项时,它会导航到详细信息视图。当用户按下标题栏的“返回”按钮时,搜索文本框和结果列表都是空的,他必须重新搜索。

当用户从详细信息视图中按下后退按钮时,推荐的方法是什么,使搜索视图中填充了以前的搜索词和结果? (也可以恢复滚动位置)

我知道我可以将这些信息存储到某个服务中,但这听起来需要做很多工作。

还有其他很酷的东西,比如视图状态服务或可以为我做这件事的东西吗?

【问题讨论】:

  • 仅供参考,这是在最新的测试版中使用缓存视图(昨天发布)解决的。

标签: angularjs ionic-framework


【解决方案1】:

我知道我可以将此信息存储到某些服务中,但是这 听起来工作量很大。

真的吗?

app.factory('searchData', function() {
  return {
    searchTerm: '',
    results: []
  };
});

这就是它的完成方式。但听起来你真正想要的是治愈懒惰的方法......

【讨论】:

  • 好吧好吧,你为什么这么生气? :) 我确实喜欢你的建议,但既然这么简单,框架可以为我们做这件事。
  • 在你写完代码后,它会为你做 :) 如果你想要更简单的东西,请改用app.constant('searchData', { searchTerm: '', results:[] })
  • 我也面临同样的问题。在我使用过的其他移动框架中,您可以在转到详细信息时缓存列表视图的状态,当您返回时,它会为您恢复。所以听起来在 Ionic 中你必须手动保存和恢复状态——这绝对是这样吗?如果是这样,Gil 的方法听起来不错,但是我希望有一个框架方法来解决这个问题。 FWIW - 在这里讨论:forum.ionicframework.com/t/save-list-view-state/1554 移动到详细信息页面破坏列表控制器的范围,这是有道理的。我还缓存了我的 $resource 调用。
  • 我实现了一个解决方案,使用 $rootScope 来保存和恢复服务中的视图和 ALSO 之间的状态(使用 Getter 和 Setter) - 这是两者之间更详细的解释:stackoverflow.com/questions/11938380/… - 有人找到这在关于 $rootScope 的 Agnular 常见问题解答中:“如果你想在 $rootScope 上放置一个函数,最好将它放在一个可以在需要的地方注入的服务中,并且更容易测试。相反,不要” t 创建一种服务,其唯一目的是存储和返回数据位。”。所以这取决于;)
  • 最后评论:根据建议,我只存储 SearchTerm 而不是缓存的数据本身。所以现在我不确定是使用 $rootScope 还是 Service 方式,因为 Angular FAQ 对此很清楚。但是,我现在知道如何做这两个选项,这很好
猜你喜欢
  • 2015-09-08
  • 2015-02-21
  • 2013-05-08
  • 1970-01-01
  • 2014-11-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多