У меня есть этот контроллер:Угловая область видимости одноточечно
class Ctrl{
constructor($http, $scope, $stateParams){
if(!$scope.items){
$http.get(...).then((res)=> {
$scope.items = res.data;
});
}
if($stateParams.id){
$scope.currItem = $scope.items[$statePrams.id];
}
}
У меня есть 2 состояния:
.state('dashboard.items', {
url: '/items',
templateUrl: 'items.html',
controller:'Ctrl'
})
.state('dashboard.items.details', {
url: '/:id',
templateUrl: '/ItemDetails.html',
controller: 'Ctrl'
})
Я хочу быть уверен, что элементы массива уже инициализирован, прежде чем я показать подробности одного из них.
Как это возможно без дублирования кода? (Если все остальное и один и тот же код внутри каждого)
Спасибо.
Используйте метод 'resolve' в литеральном объекте' .state', чтобы задержать создание экземпляра контроллера https://github.com/angular-ui/ui-router/wiki#resolve –
Я пробовал его с разрешения, но то на странице списка требуется много времени для загрузки. Я хочу показать страницу списка, загрузить список async, а затем загрузить следующее состояние. – user3712353