2016-09-05 6 views
0

現在の状態を保存したい、URLとパラメータを保存するという意味ではなく、スコープで全体のビューを保存したい。実際には、検索のようなフェイスブックを実装したいシステムであるが、異なっている。結果をページ全体に表示したいので、現在のメインステートを置き換えて、検索バーがクリアされると、前のステートに戻します。私は複雑な操作(例えば、無限のスクロールデータ..)を避けるために状態を直ちに復元する(サーバー要求なし)状態を再構築したくありません。私はui'router extras(sticky state)プラグインを見つけましたが、状態定義で保存する状態を定義する必要があります。 私の悪い英語をお詫び申し上げます..AngularJS ui-routerは前の状態を保存します

答えて

0

ローカルのストレージに日付を保存することができますangular local storageを使用してください。それはあなたにデータのためのサーバーへの旅行を保存します。

0

これはアーキテクチャ上の決定です。この質問に対する答えは短くなく、非常に主観的であり、異なる人々がそれを実行するために異なる方法を持つことになります。

ローカルストレージを活用し、ローカルストレージに存在するデータに対してすべての操作を実行することをお勧めします。

これを行う方法は、すべてのサーバー要求が、ネットワークがオフラインであるlocalstorageにあるものを返すサービスを介して行う必要があることを最初に理解することです。

だから、すべてのAJAXは、あなたがこのようにそれを行うだろう、この

var getMeRequest = AuthService.getMe(); 
 
getMeRequest.promise.then(function(response){ 
 
    if(response.cached) { 
 
    // $update views if need be 
 
    } else { 
 
    //Some code 
 
    } 
 
});

とのAuthServiceファイルのように、コントローラから行われます呼び出します。

// In AuthService 
 

 
this.getMe() = function() { 
 
    if(network.online) { 
 
    //Make AJAX call 
 
    // Update localstorage with whatever response 
 
    return {response: locastorageData, cached:false}; 
 
    } else { 
 
    return {response: localstorageData, cached:true}; 
 
    } 
 
    
 
};

これは、あなたがすべてのajax呼び出しをあなたはオンラインであっただけでなく、応答がキャッシュされているかどうかに基づいてコントローラがビューを更新できるようになりました。

関連する問題