#javascript #angularjs #angular-ui-router
#javascript #angularjs #angular-ui-router
Вопрос:
В примере приложения маршрутизатора пользовательского интерфейса есть пример, где один объект разрешения используется в следующем разрешении. https://github.com/ui-router/sample-app-ng1/blob/master/app/mymessages/mymessages.states.js#L76
resolve: {
// Fetch the current folder from the Folders service, using the folderId parameter
folder: (Folders, $stateParams) => Folders.get($stateParams.folderId),
// The resolved folder object (from the resolve above) is injected into this resolve
// The list of message for the folder are fetched from the Messages service
messages: (Messages, folder) => Messages.byFolder(folder)
}
Я пробовал приведенный ниже код в ES5 javascript, но получаю ошибку:
"Cannot read property 'propertyName' of undefined"
resolve: {
viewModel: ['viewModelService', function (viewModelService) {
return viewModelService.get().then(function (response) {
return response.data;
});
}],
anotherViewModel: this.viewModel.propertyName
}
Комментарии:
1. что такое
this.viewModel
? это оценивается какundefined
2.
this.viewModel
предполагается, что этоviewModel
объект, который был разрешен вышеanotherViewModel
3. тогда смотрите мой ответ
Ответ №1:
Это должно сработать:
resolve: {
viewModel: ['viewModelService', function (viewModelService) {
return viewModelService.get().then(function (response) {
return response.data;
});
}
],
anotherViewModel: ['viewModel', function (viewModel) {
viewModel.propertyName
}
]
}
Комментарии:
1. Блестяще. Работает хорошо.
2. @WilJones, нет проблем. Вы можете принять мой ответ, если это помогло.