2016-08-08 2 views
0

getViewById()을 사용하여 TextField를 가져와 native android filters을 적용하는 데 익숙합니다. 어떻게 MVVM 아키텍처의 규칙을 위반하지 않고 ViewModel에서이 작업을 수행 할 수 있습니까?ViewModel에서 Nativescript getViewById

+0

기본 안드로이드 필터 란 무엇입니까? Google은 그 사실을 말할 수 없었습니다. – WoIIe

+0

죄송합니다. 미안합니다. 의미는 다음과 같습니다. https://developer.android.com/reference/android/text/InputFilter.LengthFilter.html – Terhoraj

+0

그리고 여기가 제가 시작한 곳입니다. 이것은 작동합니다 https://github.com/NativeScript/NativeScript/issues/1338 이 동일한 동작이 필요하지만 viewModel에서 – Terhoraj

답변

1

MVVM 패턴을 손상시키지 않고 ViewModel에서 TextField에 액세스 할 수 없습니다.

어쨌든 MVVM implementation of NativeScript은이 문제를 해결하도록 지정되지 않았기 때문에 ViewModel에서 getViewById()을 호출하여 네이티브 안드로이드 필터 기능을 설정하도록 조언합니다. 이것이 나쁜 행동이라는 것을 두려워 할 필요는 없습니다.

+0

모든 예제 코드는 충돌 만 발생하기 때문에 ViewModel에서 뷰를 얻는 방법. – Terhoraj

+0

충돌에 대한 예외 메시지가 있습니까? 제발 그들을 제공 할 수 있습니까? – WoIIe

+0

나는 무엇을해야할지 알았다. navigatedTo (args)에서 var page = args.object를 얻었습니다. 그런 다음 var myTextField = page.getViewById ("myTextField"); viewModel.someFunction (myTextField);를 호출하여이 참조를 내 viewModel에 전달했습니다. 그런 다음 viewModel에서이 myTextField 참조를 사용할 수 있으며 필요한 경우 수행합니다.이 경우 anroid.setFilters ... – Terhoraj