Существует a working plunker.
Ответ должен быть скрыт/раскрывается в этом определении двух состояний:
родителя с несколькими видами
.state('parent', {
url: "/",
views: {
'@': {
template: '<div ui-view=""></div>',
controller: function($scope, $state, test) {
$scope.parent = { one: test };
$scope.goToChild = function() {
$state.go('parent.child');
}
}
},
'@parent': {
template: '<p>Parent says: hello <pre>{{parent | json}}</pre></p>'
+ '<br><button ng-click="goToChild()">child</button><br>',
}
},
resolve: {
test: function() { return 1; },
},
})
Ребенок потребляя родительское решение, и имеет свой собственный
.state('parent.child', {
url: "^/child/:id",
template: '<p>Child says: hello <pre>{{child | json }}</pre></p>',
resolve: {
testChild: function() { return 2; },
},
controller: function($scope, test, testChild) {
$scope.child = {
one: test,
two : testChild,
parent: $scope.parent,
};
},
})
Проверьте это here
И как это работает? Ну, все это основано на:
Имейте в виду, что свойства сферы применения только наследуют вниз государственной цепи если взгляды ваших состояний вложенными. Наследование свойств области не имеет ничего общего с вложения штатов и все, что связано с вложением ваших взглядов (шаблонов).
Вполне возможно, что у вас есть вложенные штаты, шаблоны которых заполняют ui-виды в разных не вложенных местах вашего сайта. В этом случае вы не можете ожидать доступа к переменным области родительского состояния просмотров в представлениях детей.
, а также:
За кулисами, каждый вид получает назначение абсолютное имя, которое следует схема [email protected]
, где ViewName это имя, используемое в директиве просмотра и имя состояния - это абсолютное имя состояния, например contact.item. Вы также можете написать имена имен в абсолютном синтаксисе.
Например, предыдущий пример можно также записать в виде:
.state('report',{
views: {
'[email protected]': { },
'[email protected]': { },
'[email protected]': { }
}
})
Таким образом, выше документация приводит являются ядром plunker. Родитель использует несколько просмотров, один из них не указан - и будет использоваться для наследования. Родитель также вводит в это представление свое собственное «родительское» представление. Разрешение родителя на месте ...
Ребенок теперь вводит в якорь своего родителя, у которого есть все необходимое. Это означает, что этот ребенок наследует область действия и также разрешает вещи.Он также показывает свое собственное ...
В чем вопрос? – wvdz
Как я могу сохранить тот же ui-view для двух состояний, а также иметь возможность использовать свои функции разрешения другим? – tumoxep