Ответ 1
Один способ разработки сценария с 1) боковым баром, 2) секцией действия и 3) основная область может быть как этот рабочий пример
Во-первых, состояние root. Вот состояние root с именем index. Он абстрактный и может сделать для нас resolve
. Он не влияет на имена дочерних состояний и не расширяет URL (потому что это undefined)
$stateProvider
.state('index', {
abstract: true,
//url: '/',
views: {
'@' : {
templateUrl: 'layout.html',
controller: 'IndexCtrl'
},
'[email protected]' : { templateUrl: 'tpl.top.html',},
'[email protected]' : { templateUrl: 'tpl.left.html',},
'[email protected]' : { templateUrl: 'tpl.main.html',},
},
})
Первое реальное состояние - это список и наследуется от родителя, но с атрибутом parent: 'index'
, поэтому родительское имя не влияет на имя состояния.
Преимущество в том, что он может наследовать много разрешенных материалов. Кроме того, состояние корня может быть загружено один раз, для всех остальных родительских состояний
.state('list', {
parent: 'index',
url: '/list',
templateUrl: 'list.html',
controller: 'ListCtrl'
})
Это реальная сила UI-Router, потому что теперь мы можем видеть, что ребенок вводит материал в два места - 1) секцию действия и 2) основную область
.state('list.detail', {
url: '/:id',
views: {
'[email protected]' : {
templateUrl: 'detail.html',
controller: 'DetailCtrl'
},
'[email protected]' : {
templateUrl: 'actions.html',
controller: 'ActionCtrl'
},
},
})
Таким образом, мы можем использовать именованные виды и множественные представления в реальном мире. Пожалуйста, никогда не забывайте, как идет определение области:
Наследование наследования только по иерархии представлений
Имейте в виду, что свойства области только наследуют цепочку состояний, если представления ваших состояний вложены. Наследование свойств области не имеет ничего общего с вложением ваших состояний и всего, что связано с вложением ваших представлений (шаблонов).
Вполне возможно, что у вас есть вложенные состояния, шаблоны которых заполняют u-views в разных не-вложенных местах на вашем сайте. В этом случае вы не можете ожидать доступа к переменным области представлений родительского состояния в представлениях дочерних состояний.
Проверьте, что все в действии здесь