2013-07-01 116 views
1

我正在開發一個Angular-App。用戶必須在不同的頁面上輸入數據,而可以在頁面之間切換。此外,還有一個「概覽頁面」,用戶可以看到輸入的數據。Angular JS /數據處理/概述頁面

所以現在我想着如何在概覽頁面上顯示輸入的數據。我應該只使用$ rootScope來獲取數據,還是將它存儲在JSON對象中更好?或者 - Angular不建議這樣做 - 將數據存儲在服務中?

那麼從哪裏獲得輸入的數據從不同的頁面?

謝謝!

+1

顯示你有什麼。 – DaGardner

+0

我不是一個Angular開發人員,但是對於不同的Javascript/UI框架非常有經驗,對我來說,聽起來像一個選項卡式/嚮導界面對於您將所有內容保存在一個頁面中,但在不同的「卡片」中,只有一個其中任何時候都可見,但除此之外,所有內容都包含在同一頁面中。希望它可以幫助。 –

+0

@Christian:到目前爲止沒有任何表現。我正處於頭腦風暴階段。所以我有HTML頁面,控制器和一些服務... Geoge:理解你的意思,但我有不同的頁面,不同的控制器等。謝謝! – DehMotth

回答

2

如果您想要在單個頁面內的實際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

+0

感謝您的回答,現在我有很好的出發點!爲角度找到另一個本地存儲解決方案:[Local Storage Angular](https://github.com/agrublev/Angular-localStorage)。 @moderndegree:接受這個答案! – DehMotth