2016-08-08 6 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は、この問題を解決するに指定されていないため、ネイティブのAndroidフィルタ機能を設定するの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