반응형
AngularJS UI 라우터:중첩된 명명된 뷰를 구성하는 방법은 무엇입니까?
아래와 같은 구성이 있습니다.
...
.state('profiles', {
abstract: true
, url : '/profiles'
, resolve: {...}
, views: {
mainModule: {
templateUrl : '/partials/home.html'
, controller : 'HomeCtrl'
}
, leftSidePaneModule: {
templateUrl : '/partials/leftSidePane.html'
, controller : 'LeftSidePaneCtrl'
}
}
})
...
주옥 파일
...
.col-xs-4.col-md-4.chat_block(ui-view='leftSidePaneModule', autoscroll="false")
...
그렇게,leftSidePaneModule
모듈이 에 채워집니다.ui-view='leftSidePaneModule'
자리 표시자그런데 문제는 제 안에 이름이 붙은 뷰가 2개 더 있다는 거예요.leftSidePaneModule
템플릿을 사용합니다.leftSidePaneModule
템플릿은 다음과 같습니다.
leftSidePaneModule.html
<div>
<div ui-view="leftWidgetOne"></div>
<div ui-view="leftWidgetTwo"></div>
</div>
모듈을 만드는 방법leftWidgetOne
&leftWidgetOne
위의 자리 표시자에 채워지는 건가요?
나는 노력했다.
...
.state('profiles', {
abstract: true
, url : '/profiles'
, resolve: {...}
, views: {
mainModule: {
templateUrl : '/partials/home.html'
, controller : 'HomeCtrl'
}
, leftSidePaneModule: {
templateUrl : '/partials/leftSidePane.html'
, controller : 'LeftSidePaneCtrl'
}
, 'leftWidgetOne@leftSidePaneModule' : {...}
, 'leftWidgetTwo@leftSidePaneModule' : {...}
}
})
...
시도: 2
...
.state('profiles', {
abstract: true
, url : '/profiles'
, resolve: {...}
, views: {
mainModule: {
templateUrl : '/partials/home.html'
, controller : 'HomeCtrl'
}
, leftSidePaneModule: {
templateUrl : '/partials/leftSidePane.html'
, controller : 'LeftSidePaneCtrl'
, views: {
'leftWidgetOne' : {...}
, 'leftWidgetTwo' : {...}
}
}
}
})
...
둘 다 작동하지 않습니다.
어떻게 하죠?
감사합니다!
해결책은 여기서 찾을 수 있습니다: View Names - Relative vs. 절대 이름.인용문:
모든 뷰에는 다음과 같은 스킴을 따르는 절대 이름이 할당됩니다.
viewname@statename
,어디에viewname
는 에서 사용되는 이름입니다.view
지시 및 주 이름은 주의 절대 이름입니다. 예를 들어.contact.item
...
(참고: 우리의 경우 반드시 그래야 합니다.)
중요한 것은 우리가 전체 (절대) 이름을 사용할 수 있다는 것입니다.view
, 현재 상태 정의의 일부입니다.
$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">
'leftSidePaneModule@profiles': {
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 'leftSidePaneModule@profiles'
'leftWidgetOne@profiles': {
template: '<h2>One</2>',
},
'leftWidgetTwo@profiles': {
template: '<h2>Two</2>',
},
}
});
위의 코드를 보여주는 플렁커가 작동중입니다.
언급URL : https://stackoverflow.com/questions/23590574/angularjs-ui-router-how-to-configure-nested-named-views
반응형
'programing' 카테고리의 다른 글
선호 속성 안드로이드: 의존성의 반대를 하는 방법? (0) | 2023.10.03 |
---|---|
웹 응용 프로그램(스프링 보안을 통해)에 로그인한 모든 사용자의 목록을 확인하려면 어떻게 해야 합니까? (0) | 2023.10.03 |
스크립트 실행을 무제한으로 설정 (0) | 2023.10.03 |
SQL에서 정수의 최대값을 얻으려면 어떻게 해야 합니까? (0) | 2023.10.03 |
ClosedXML - 여러 피벗 테이블 작성 (0) | 2023.10.03 |