【问题标题】:Angular JS / data handling / overview pageAngular JS / 数据处理 / 概览页面
【发布时间】:2013-07-01 20:06:57
【问题描述】:

我正在开发一个 Angular 应用程序。用户必须在不同的页面上输入数据,而可以在页面之间切换。此外,还有一个“概览页面”,用户可以在其中查看输入的数据。

所以现在我正在考虑如何在概览页面上显示输入的数据。我应该只使用 $rootScope 来获取数据还是将其存储在 JSON 对象中更好,或者 - 但 Angular 不建议这样做 - 将数据存储在服务中?

那么从不同的页面到哪里获取输入的数据呢?

谢谢!

【问题讨论】:

  • 我不是 Angular 开发人员,但对不同的 Javascript/UI 框架非常有经验,对我来说,听起来标签式/向导式界面更适合您将所有内容都保留在一个页面上,但在不同的“卡片”,在任何给定时间只有一张是可见的,但除此之外,所有内容都包含在同一页面中。希望它可能会有所帮助。
  • @Christian:目前没有什么可展示的。我正处于头脑风暴阶段。所以我有 html 页面、控制器和一些服务...... Geoge:明白你的意思,但我有不同的页面,有不同的控制器等。谢谢!
  • 控制器之间需要通信-Reference

标签: angularjs


【解决方案1】:

如果您想在实际 HTML 页面之间而不是 routes 在单个页面中保留数据,您可以使用 LocalStorageHere is a service 这样会更容易一些。

另一种方法是使用 cookie。您可以阅读有关在 Angular here 中使用 cookie 的更多信息。

如果您想跨不同的routes 持久保存数据,您需要创建一个共享的service。以下是这种方法的一个示例:

<div ng-app="myApp">
    <a href="#one">one</a> | <a href="#two">two</a>
    <div ng-view></div>
    <script id="one.html" type="text/ng-template"><div><h1>Template One</h1>foo = {{shared.foo}}</div></script>
    <script id="two.html" type="text/ng-template"><div><h1>Template Two</h1>foo = {{shared.foo}}</div></script>
</div>

angular.module('myApp', []).
config(function($routeProvider){
    $routeProvider.
    when('/one', {templateUrl: 'one.html', controller: 'OneCrtl'}).
    when('/two', {templateUrl: 'two.html', controller: 'TwoCrtl'}).
    otherwise({redirectTo: '/one'});
}).
service('sharedService', [function() {
  this.foo = 'bar';
}]).
controller('OneCrtl', function($scope, sharedService){
    $scope.shared = sharedService
}).
controller('TwoCrtl', function($scope, sharedService){
    $scope.shared = sharedService
});

Here's a fiddle.

【讨论】:

  • 感谢您的回答,现在我有了很好的起点!为 angular 找到了另一个本地存储解决方案:Local Storage Angular。 @moderndegree:接受这个作为答案!
猜你喜欢
  • 1970-01-01
  • 2016-05-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-15
  • 1970-01-01
相关资源
最近更新 更多