Ответ 1
Решение можно найти здесь: Просмотреть имена - относительные и абсолютные имена. Цитата:
За кулисами каждому представлению присваивается абсолютное имя, которое следует схеме
[email protected]
, гдеviewname
- это имя, используемое в директивеview
и имя состояния - это состояние абсолютное имя, напримерcontact.item
...
(обратите внимание: в нашем случае это должно быть'profiles'
).
Дело в том, что мы можем использовать полное (абсолютное) имя view
, являющееся частью определения состояния current:
$stateProvider
.state('profiles', {
url: '/profiles',
views: {
mainModule: {
template: '<div>' +
' <h1>Main</h1>' +
' <div ui-view="leftSidePaneModule"></div>' +
'</div>',
},
// here we do target the view just added above, as a 'mainModule'
// as <div ui-view="leftSidePaneModule">
'[email protected]': {
template: '<div>' +
' <div ui-view="leftWidgetOne"></div>' +
' <div ui-view="leftWidgetTwo"></div>' +
'</div>',
},
// and here we do target the sub view
// but still part of the state 'profiles' defined in the above
// view defintion '[email protected]'
'[email protected]': {
template: '<h2>One</2>',
},
'[email protected]': {
template: '<h2>Two</2>',
},
}
});
Существует также plunker, показывающий приведенный выше код в действии