XML보기에서 'foo'라는 이름의 페이지에 바인딩 된 JSON 모델이 있습니다. 모델의 객체에는 목록에 표시하려는 '이름'필드와 자식 컬렉션 '막대'('코드'필드가 있음)가 있습니다. 이는 같은 모델링 :자식 컬렉션에 바인딩 집계
JS 코드
아이 '바'배열에 대한 목록 항목의 값은 이름이 'foo는'을 통해 해결하는 것이var foo = { name:'My Name', bar:[{ code:'Code 1' }, { code:'Code 2' }] }
var fooModel = new sap.ui.model.JSONModel(foo);
page.setModel(fooModel, 'foo');
page.bindElement('foo>/');
XML 마크 업
<Label text='{foo>name}'/>
<List items='{foo>bar}'>
<StandardListItem title='{foo>code}'/>
</List>
공지 사항. 최소한이 기능은 저에게 효과적이며 목록에서 참조 할 수있는 다른 방법을 찾지 못했습니다.
하지만 문제는 내 목록 항목에서도 최상위 'foo'개체 데이터를 어떻게 얻습니까? 'name'필드를 목록 항목에도 표시하고 싶다고합시다. 즉, 다른 이름으로 하위 컬렉션을 참조 할 수있는 다음과 같은 작업을 수행 할 수있는 방법이 있습니까? 이것을 달성 할 수있는 방법이 있습니까?
<List items="{ path:'foo>bar', name='bar' }">
<StandardListItem title='{bar>code}' info='{foo>name}' />
</List>
응답 해 주셔서 감사합니다. 나를 위해 일한 것은 정보 '{foo>/name}'이었으므로 절대 경로 기법이 효과가있었습니다. (#bindElement 수정을 사용하여 초기 게시물을 편집했는데 답안과 나를 위해 효과가 있었던 것 사이의 작은 불일치를 설명합니다.) – dlgrasse
목록에 목록이있는 경우에도 이것이 작동하지 않는 곳입니다. 즉, 'bar'배열을 가진 'foo'객체 배열이 있다고 가정 해 봅시다. 상위 항목을 "items = '{foo> /}'로 바인딩하고 'items'= '{foo> bar'} '로'bar '내부 목록을 바인딩하면 상위 항목을 참조 할 수 없습니다. (그리고 나는 당신이 준 대답의 다양한 순열을 시도했다). 이것이 명확하지 않은 경우이 두 번째 예를 포함하도록 원본 게시물을 수정하겠습니다. – dlgrasse
page.bindElement ("foo> /")를 사용하고 있습니까? 모델 안의 foo 객체를 가리 키려면 "foo>/foo"여야합니다. – matbtt