2017-02-28 9 views
1

백엔드에서 odata가 발생했습니다. 내 SAPUI5 페이지에서 두 가지 선택 컨트롤이 있습니다. 첫 번째 선택 항목은 백엔드에서받은 항목 목록을 표시합니다. 두 번째 선택 컨트롤은 첫 번째 선택 컨트롤에서 선택된 항목에 따라 변경됩니다.XML의 동적 컨텍스트 바인딩

지금 나는 컨트롤러에서 "행성"에 대한 새로운 경로를 선택하고 있습니다. "행성"항목 경로를 XML로 선택된 항목의 "별"에 따라 변경할 수 있습니까? Javascript를 사용하지 않고?

나는 같은 것을 할 싶습니다 :

<Select id="stars" 
    items="{ 
     path: '/Stars' 
    }"> 
    <core:Item key="{StarID}" text="{StarName}" /> 
</Select> 


<Select id="planets" 
    items="{ 
     path: '("/Stars('" + StarID + "')/toPlanets"' 
    }"> 
    <core:Item text="{PlanetName}" /> 
</Select> 

답변

1

를 불행하게도, 나는 순진하게도 UI5이 같은 작업을 수행하는 기존 기능이 있다고 생각하지 않는다. 비슷한 것은 XML 사전 처리 중에 바인딩 대체가 있지만 상황에 맞게 사용할 수는 없습니다.

나는이 상황을 과거에 많이 만났으며이를 처리하기위한 도우미 컨트롤을 만들었습니다 (완벽한 해결책은 아닐지 모르지만 작동합니다). 이런 종류의 구조를 여러 곳에서 사용하는 경우 유사한 접근법을 사용하는 것이 이치에 맞습니다 (따라서 JS 컨트롤러에서 동일한 상용구 코드를 사용하지 않아도됩니다).

이러한 컨트롤의 구현 예는 here이고 예제 사용은 here입니다. 기본적으로이 기능을 사용하면 이벤트 리스너를 사용하지 않고도 이러한 "간접 바인딩"을 수행 할 수있는 재사용 메커니즘을 사용할 수 있습니다.