2017-05-10 1 views
0

xml 뷰의 컨트롤러에서 뷰의 컨트롤에 필터를 동적으로 바인딩하려고합니다. 이 작업을 수행하는 방법을 알고 있지만 처음에는이 작업을 수행 할 수있는 적절한 방법을 찾지 못했습니다.SAPUI5 초기 필터를 컨트롤에 바인딩 할 때

예. 뷰에 ComboBox를 정의하고 뷰에서 oData 모델에 바인딩 경로를 제공했습니다. 그런 다음 컨트롤러에서 ComboBox의 항목에 맞는 도구를 설정하려고합니다. View의 onInit에서 시도했지만 ComboBox 객체에 바인딩이 아직 설정되지 않았습니다.

"loadItems"이벤트에서 지연로드를 수행하고 필터를 설정하여 해결했습니다. 게으른로드를 사용하지 않음으로써 이것을 수행 할 수있는 방법이 있습니까? 적절한 이벤트 또는 표준 후크를 찾지 못했습니다.

감사합니다.

+0

바인딩의 '외부'작업을 수행 할 필요가 없습니다. 이 페이지를 확인하십시오> https://help.sap.com/saphelp_nw74/helpdata/en/91/f057786f4d1014b6dd926db0e91070/content.htm –

답변

1

그래서 바인딩은 oninit()에서 사용할 수 없습니다 ... 정확히 어디 처음부터 바인딩을 만들까요 ??? 초기 바인딩을 만들 때 어디에서나 초기 필터를 적용 할 수 있습니다.

예를 들어, onInit 내부의 컨트롤러에서 this.byId ("myComboBox")을 호출하여 컨트롤을 가져옵니다. 그런 다음 oComboBox.bindItems ({...})을 호출하고 초기 필터도 전달합니다. 그래서 bindItems (...)도 필터를 허용합니다. 필터가 변경되면 oComboBox.getBinding ("items"). filter (...)을 호출하여 필터를 업데이트 할 수 있습니다. 일부 세부 사항은 worklist app tutorial을 확인하십시오 ...

그런데 XMLView에서 직접 필터를 포함한 바인딩을 직접 지정할 수도 있습니다. 자세한 내용은 내 answer here을 참조하십시오.

+0

바인딩은 XML보기에서 정의됩니다. 유스 케이스는 약간 특유하다. 필자는 필터 값을보다 유연하게 만들고 구성 파일에서 읽어 들이고 싶습니다. 또한 앱의 여러보기에서 사용됩니다. 그래서 나는 XML 필터 정의를 피했다. – tomtom

관련 문제