如果某个条件成立,我想手动拒绝一条路由,但似乎并没有起作用。我认为我没有正确地拒绝它,但是当我在强大的谷歌搜索时,找不到正确的方法。
这是我的路由:
.when('/filters/edit/:id', {
name: 'filters-edit',
templateUrl: './assets/angular/modules/filters/filters-edit.html',
controller: 'FiltersSingleCtrl',
controllerAs: 'fs',
resolve: {
routeData: ['$q', '$route', '$location', 'utils', 'filtersApi', 'samplesApi', 'tagsApi', 'simpleCsdlData', function($q, $route, $location, utils, filtersApi, samplesApi, tagsApi, simpleCsdlData) {
var ID = $route.current.params.id;
var startTime = utils.getPreviousDate(30, 'yyyy-MM-dd').dateFrom + ' 00:00',
stopTime = utils.formatDate(utils.getDateNow(), 'yyyy-MM-dd') + ' 00:00';
return $q.all({
filter: filtersApi.single({id: ID}).then(function(res) {
res.data.versionResults[0].isAdvanced = true;
if (res.data.versionResults[0].isAdvanced) {
$location.path('/filters/edit/' + res.data.id + '/advanced');
$q.reject();
}
simpleCsdlData.set(res.data.versionResults[0].simpleFilterParts);
}),
countries: filtersApi.countries()
});
}]
}
})
当res.data.versionResults[0].isAdvanced
为true时,我需要拒绝promise以便视图根本不加载,在现在的情况下它会先加载然后将用户转到另一个页面,这不是我想要的。
我该如何手动拒绝promise?