Polymer2 で の値をバインドする で my-input
なるカスタムエレメントを作成しました。<input>
の入力値をそのまま表示するだけのエレメントです。
|
|
さて、この入力値を受け取れるよう、親エレメントを次のように作成しました。
|
|
そして<input>
に値を入力してみると…親に反映されない。
いろいろ試行錯誤してみた所、親エレメント側にも ::input
を足して
|
|
とすれば反映されるようになりました。けど、これはどうなんだろう?
子(my-input
エレメント)は、まあ自分が<input>
を扱っているのを知っているから良いとして、親(my-parent
エレメント)が子の事情を考慮して実装しないといけないとは。
これの答えはここでした。
てっきりカーリーブラケット{{}}
は、子エレメントへも親エレメントへも自動で反映してくれるものだと思っていたのですが、正確には、「親エレメントへも反映できる」だけで、デフォルトでは反映してくれないようです。
Automatic, which allows upward (target to host) and downwards (host to target) data flow. Automatic bindings use double curly brackets ({{ }}):
notify
. A notifying property supports upward data flow. By default, properties are non-notifying, and don’t support upward data flow.
そんなわけで、notify
を明示的にtrue
に設定してやる必要がありました。
子エレメント(今回の場合だとmy-input
)のプロパティ定義で次のようにすれば良いことになります。
冒頭に書いたような、親エレメント(今回の場合はmy-parent
)に::input
は必要ありません。
|
|