2
我在我的路由提供程序中設置了一個簡單的解析函數。像Angular routeProvider Resolve not called
.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');從一個路由改變到這個,angular不會重新解析這個控制器。
我可能不會以正確的方式思考解決方案,如果是的話,會採取「角度」的方式來做到這一點。我希望在視圖之前加載所有這些信息,並且基於路由參數變量。