質問

AngularjsのURLの一部としてビュー状態を保存する上で一般的なもの(いずれかの場合)合意とは何ですか。私はビューの状態になるように、多くのフィルタ、タブなどを持つかなり複雑なビュー/ルートがあります。

これらのビューコンポーネントの状態をアプリケーション内のより簡単なナビゲーションでURLの一部として保存するという利点を確認します(backのナビゲートは、サーバーからの状態をロードせずに行われたすべての選択で前のビューを復元することになります)。代替案である。もう1つの利点は、ビュー状態がブックマーク可能になることです。

ガイダンスに使用できるパターンはありますか?誰もがこれまでにやったことがあり、いくつかの経験を共有することができますか?URLのビュー状態を保存することから離れている必要がありますか?

役に立ちましたか?

解決

必要なデータが{keyvalue}に血清を変更できる場合は、 $location.search()

app.controller("myCtrl", function ($scope, $location, $routeParams) {
    // Load State
    var savedState = $location.search();
    allProperties.forEach(function (k) {
        if (typeof savedState[k] !== 'undefined') {
            $scope.model[k] = savedState[k];
        } else {
            $scope.model[k] = defaultValues[k];
        }
    });

    // Save the parameters
    $scope.createUrlWithCurrentState = function() {
         allProperties.forEach(function (k) {
             $location.search(k, $scope.model[k]);
         });
    });
})
.

createUrlWithCurrentStateを持つ各ng-change要素のinputを使用してng-modelを呼び出すことができ、各変更で済みます。

ng-clickCreate a link to this pageを更新して、必要なすべてのパラメータを保存するように保存する必要があります。


このが行われるべきかどうかに関しては、答えはあなたのユースケースによって異なります。リンクの共有を許可しなければならない場合は、URLに状態を保持するための代替手段が非常に少なくあります。

しかし、いくつかの状態はシリアル化やデータがもちょうどのようにURL に保存するのは長いです。

現在のセッションまたはブラウザのみの取得情報を保存したい場合は、 allProperties または DOMストレージAPI

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top