2016-10-21 4 views
1

私は2つの変数を持っています。 modelおよび_model。基本的に、モデルはテンプレートでバインドするプロパティになります。バインドすると、_modelと設定され、_modelがフォームバインディングのマークとダーツで使用されます。を使用していても、私はプロパティとして設定できますか?

私の質問はこれです。私はダーツで知っている、下線は私的な変数の表記です。 プライベートがDartクラスに関連付けられているマークアップの範囲を網羅しているかどうかはわかりませんでした。

と言われています。それを理解するクラスのdoesnt

set("_model", new Model()); 

:によって

_model = new Model(); 

をクラスは、それがうまく理解し、私はを使用してマークアップを通知したい場合はを設定します。私が設定したときと思われます。 2つの異なるスコープが_modelのようにほぼ同じです。多分の参照をcomponentModelのようなものに変更するか、アンダースコアを全く使用しない何かに変更することでこれを得ることができます。

私は、アンダースコアをあらかじめ保留していると考えているので、誰かが私に何かを紛失していると思われるかもしれません。に設定してください。あなたは

_model = new Model(); 

から何を期待

答えて

0

わからないこの通常のコードと動作するように期待されています。

set("_model", new Model()); 

_modelプロパティの値を設定するためにリフレクションを使用する必要があり、別のライブラリからプライベートフィールドにアクセスする方法がないので、私は、これは動作しないことができる確信しています。コードがプライベートメンバーにアクセスできるようにするために、トランスフォーマーがコードを変更する方法(パブリックゲッターやセッターを追加するなど)があります。しかし、私が覚えている限り、これはそうではありません。

+0

ええ、それは私が思ったものです。私は私のマークアップに反映されることができるプライベートプロパティを持っていることを望んでいましたが、クラスにプライベートに滞在し、親コンポーネントなどでオーバーライドされません。 – Fallenreaper

+1

AFAIK。実行時に強制されない場合でも、アナライザーのサポートを得るための注釈を導入しようとする努力があります。このアナライザは '@ protected'をサポートしていて、おそらく' @ final'やそのようなものを追加します。 https://pub.dartlang.org/packages/metaをチェックしてください(これらの注釈のすべてがすでにアナライザでサポートされているわけではありません) –

+0

同僚はコードを読んだ後に反射特性を利用していたようにdidntしていました。他の開発者の使用を禁止し、もっとプライベートで保護された状態項目のためにそれらを設定する方法。 : -/ – Fallenreaper

関連する問題