4

ユーザーがマップ上のオブジェクトを表示し、マーカーを押して、情報を含む新しいビューに移動できる Web アプリを作成しています。そのビューから、彼らはより深く、より多くの情報にトラバースすることができます。

何かのようなもの:

  • /地図
  • /ツリー/{ツリーID}
  • /tree/{treeid}/information/{informationid}

ルート/状態間を移動するときに実際のモデル状態を維持する方法を知っています。問題は、ブラウザーの履歴に戻ったときにマップ全体 (マーカーとすべてを含む) を再計算したくないことです。つまり、さらにトラバースするときに /map のレンダリング状態を維持したいということです。

これは、/map でルートの代わりに検索パラメーターを使用して (つまり、/map?treeid=10)、検索でリロードを無効にし、マップ オブジェクトで ng-hide="treeid" を実行し、マップ オブジェクトで ng-show を実行することで簡単に実現できますツリー情報オブジェクト。

私の質問は、角度でこれを行うより適切で適切な方法があるかどうかです。

前もって感謝します。

4

3 に答える 3

0

データを保存するための専用サービスを作成できます。サービスはシングルトンであるため、データはビューとコントローラー間で共有されます。このようなもの:

angular.module('myApp').factory('GlobalService', [
    function() {
        var _this = this;
        _this._data = {
            user: window.user,
            authenticated: !! window.user
        };

        return _this._data;
    }
]); 


angular.module('myApp').controller('FooController',
    ['$scope', 'GlobalService',
    function ($scope, GlobalService) {
    $scope.global = GlobalService;
    $scope.global.bar = someData;
    ...
]);
于 2014-03-05T07:39:04.287 に答える
0

これは役に立つ読み物のように見えます: AngularJS Performance Tuning for Long Lists。大規模/複雑なデータ構造をレンダリングする際に避けるべき推奨事項と落とし穴について詳しく説明します。

于 2014-03-05T08:18:50.217 に答える