Я пытаюсь динамически загружать маршрут, основываясь на последнем посещении пользователем детского маршрута. Последний визит сохраняется и извлекается с использованием фабрики. в настоящее время я использую onEnter, но это вызывает загрузку родительского маршрута, а затем второй загрузку, чтобы загрузить дочерний маршрут. Есть ли способ предотвратить вторую загрузку и перейти непосредственно к дочернему маршруту, если необходимая информация есть?ui-router onEnter alternative
(function() {
'use strict';
angular
.module('curation')
.config(routesConfig);
routesConfig.$inject = ['$stateProvider'];
/**
* Route Configuration to establish url patterns for the module
* @param {Function} $stateProvider
*/
function routesConfig($stateProvider) {
// Curation state routing
$stateProvider.
state('site.curation', {
url: '/curation',
templateUrl: 'modules/curation/views/curation.client.view.html',
resolve: {
publicFronts: function($stateParams, frontsService) {
return frontsService.getPublicFronts($stateParams.siteCode);
},
authoringTypes: function(assetMetadata) {
return assetMetadata.authoringTypes().then(function(value) {
return value.data.authoringTypes;
});
}
},
onEnter: function($state, $timeout, userSitePreferences, publicFronts) {
$timeout(function() {
var recentFront = _.find(publicFronts, {
Id: userSitePreferences.curation.recentFrontIds[0]
});
if (recentFront) {
$state.go('site.curation.selectedFront.selectedLayout', {
frontId: recentFront.Id,
layoutId: recentFront.LayoutId
});
}
});
}
});
}
})();
Вы должны опубликовать содержимое этой ссылки, так что если он идет недоступен, его содержание все еще здесь. – gustavohenke
Я обновил свой ответ с помощью примерного кода –
Похоже, что userSitePreferences больше не распознается при таком подходе. :(Спасибо за предложение @JeffFairley –