我在路由提供程序中设置了一个简单的解析功能。就像是
.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'); 从一条路线更改为这条路线,角度不会重新解析此控制器。
我可能没有考虑以正确的方式解决问题,如果是这样,我会就“角度”的方式提出建议来做到这一点。我希望在视图之前加载所有这些信息,并且会根据路由参数而变化。