2

ルート プロバイダーに簡単な解決関数を設定しました。何かのようなもの

.config(['$routeProvider', 'Constants', function config($routeProvider, Constants) {
    $routeProvider.
        when('mypage', {
            templateUrl: 'partials/mypage.tpl.html',
            controller: 'MyPageCtrl',
            reloadOnSearch: false,
            resolve: {
                factory: 'MyPageResolve'
            }
        })
)];

そのファクトリは、次のようにモジュールで宣言されます。

.factory('MyPageResolve', ['$q', '$log', 'someAPI',
    function ($q, $log, someAPI) {
        var defer = $q.defer();
        var postUserFunc = function () {

            someAPI.get(
                function(data, status) { //$http.get().success() func
                    defer.resolve();
                }
            );

        };
        return defer.promise;
}]);

何が起こっているかは、ストレート リフレッシュまたは最初のロードで、この解決メソッドがヒットします。ただし、 $location.url('/mypage'); があるとします。あるルートからこのルートに変更すると、角度はこのコントローラーを再解決しません。

私は正しい方法で解決することを考えていない可能性があります。この情報はすべてビューの前にロードされ、ルート パラメータに基づいて可変になります。

4

1 に答える 1