ルート プロバイダーに簡単な解決関数を設定しました。何かのようなもの
.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'); があるとします。あるルートからこのルートに変更すると、角度はこのコントローラーを再解決しません。
私は正しい方法で解決することを考えていない可能性があります。この情報はすべてビューの前にロードされ、ルート パラメータに基づいて可変になります。