Ответ 1
Вы должны переместить "остальное" в отдельный модуль:
angular.module('separateModule', ['ui.router', 'kendo.directives'])
.config(function ($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise('/');
$stateProvider
.state('otherPart', {
url: '',
views: {
'otherPart': {
templateUrl: 'views/otherPart.html'
//etc
}
},
resolve: {
fetcherPromise: function(User, MyData) {
var fns = [
MyData.fetch,
User.fetchEntitlements
];
return fetcher.inSerial(fns);
}
}
})
;
});
angular.module('myApp', ['separateModule', 'ui.router', 'kendo.directives'])
.config(function($stateProvider) {
$stateProvider
.state('settings', {
url: '/',
views: {
'mainNav': {
templateUrl: 'scripts/directives/mainNav/mainNav.html',
controller: 'mainNavCtrl'
//etc
}
},
resolve: {
fetchSettings: function(Settings) {
return Settings.fetch;
}
}
});
});
Если я прав, он не разрешал зависимости для первого блока, потому что он был перезаписан вторым .config
.
Вот ваш код для одной конфигурации, если вам это нужно:
angular.module('myApp', ['ui.router', 'kendo.directives'])
.config(function($stateProvider, $urlRouterProvider) {
$stateProvider
.state('settings', {
url: '/',
views: {
'mainNav': {
templateUrl: 'scripts/directives/mainNav/mainNav.html',
controller: 'mainNavCtrl'
//etc
}
},
resolve: {
fetchSettings: function(Settings) {
return Settings.fetch;
}
}
})
.state('otherPart', {
url: '',
views: {
'otherPart': {
templateUrl: 'views/otherPart.html'
//etc
}
},
resolve: {
fetcherPromise: function(User, MyData) {
var fns = [
MyData.fetch,
User.fetchEntitlements
];
return fetcher.inSerial(fns);
}
}
});
$urlRouterProvider.otherwise('/');
});