угловой UI-роутер для родительского состояния
В моем родительском состоянии у меня естьresolve
, В настоящее время я не вводитьразрешить ключ в любом дочернем состоянии.
Я предполагал, что мое дочернее состояние не будет ждать, пока это решение / обещание будет решено. Но когда я устанавливаю тайм-аут, я вижу, что состояние моего ребенка действительно ждет.
Это правильное поведение?
.config(function ($stateProvider, $urlRouterProvider, STATES) {
$stateProvider
.state(STATES.ROOT, {
abstract: true,
template:'<div ui-view=""></div>',
resolve: {
UserService: 'UserService',
userDetails: function(UserService){
return UserService.getUserProfile();
}
}
})
.state(STATES.BILLING, {
url: '/bill/checkClientContext.html',
templateUrl: 'bill/checkClientContext.html',
controller: 'BillingController'
})
UserService.js
'use strict';
angular.module('nabc.data')
.service('UserService', ['AjaxService', '$timeout','$q', function(AjaxService, $timeout, $q) {
var getUserProfile = function() {
var promise = AjaxService.get('userProfile');
var deferred = $q.defer();
$timeout(function(response){
deferred.resolve(response);
}, 5000);
return deferred.promise;
};
return {
getUserProfile: getUserProfile
};
}]);
Как вы можете видеть надBillingController
не вводить вuserDetails
, Но когда я устанавливаю тайм-аут в userService, я вижу, что мое состояние выставления счетов ждет.