Я использую, чтобы получить TextField, используя getViewById()
, чтобы применить к нему native android filters. Как я могу сделать это из ViewModel без нарушения правил MVVM-архитектуры?Nativescript getViewById from ViewModel
ответ
Вы не можете получить доступ к TextField из ViewModel, не нарушая шаблон MVVM.
В любом случае, я бы посоветовал вам просто позвонить getViewById()
из ViewModel, чтобы установить собственную функцию фильтра андроида, так как MVVM implementation of NativeScript не назначен для решения этой проблемы. Вам не нужно бояться, что это плохая практика.
Любой пример кода, как мне получить представление из ViewModel, поскольку я получаю только сбои. – Terhoraj
Есть ли сообщения об исключениях из ваших сбоев? можете ли вы предоставить их, пожалуйста? – WoIIe
Я понял, что делать. В navigatedTo (args) я получил var page = args.object; то я получил var myTextField = page.getViewById («myTextField»); Я передал эту ссылку в свой режим просмотра, вызвав функцию viewModel.someFunction (myTextField); Затем из viewModel я могу использовать эту ссылку myTextField и делать все, что мне нужно, в этом случае установите anroid.setFilters ... – Terhoraj
Что такое встроенный фильтр андроидов? Google не смог мне это сказать. – WoIIe
Мне было не понятно, извините ... это означает: https://developer.android.com/reference/android/text/InputFilter.LengthFilter.html – Terhoraj
И вот где я начал. Это работает https://github.com/NativeScript/NativeScript/issues/1338 Мне нужно это же поведение, но из viewModel – Terhoraj