[Dart+Polymer] Polymer1.0対応に伴いBraking Change! マジか??
Dartが1.12になるのに伴い、Polymerが1.0に切り替わったらしく、サンプルを見てみた。
どんだけ変えるのかと。
今までの全く無駄じゃん!
Polymer Dart 1.0 Developer Guide
https://github.com/dart-lang/polymer-dart/wiki#10-developer-guide
@Property(notify: true)
と宣言しなくてはいけない。("P"が大文字なのに注意)
このとき、プロパティは2Way-bindingにする必要があるらしいですよ。
っていうか、[_]って何?
どんだけ変えるのかと。
今までの全く無駄じゃん!
Polymer Dart 1.0 Developer Guide
https://github.com/dart-lang/polymer-dart/wiki#10-developer-guide
@observableが@propertyに変更
さらに、2way-bindingするには、@Property(notify: true)
と宣言しなくてはいけない。("P"が大文字なのに注意)
プロパティへの値のセットに専用メソッドを使用する
@observable String hoge;
...
void updateHoge() => hoge = "gg";
これが下のように変わります。@property
String hoge;
...
void updateHoge() => set("hoge","gg");
じゃないと、HTML側が更新されないです。イベントの取り方が変わった
イベントの取り方はいくつかあるようです。方法1:@Listenアノテーション
HTML側はidだけ設定します。Dart側でどのIDのどのイベントを受けるかをメソッド単位で設定します。<button id="hoge">発射</button>
@Listen("hoge.click")
void fire(e,[_]) => print("hoge");
方法2:onにListenする案外ベタな方法
attached() {
$["hoge"].on["click"].listen( (e)=>print("hoge") );
}
プロパティの変更イベントで受ける
以前はプロパティ名に"Changed"を付けた名前のメソッドが自動的に呼ばれたものが、@Listenアノテーションに統一されています。@Property(notify:true)
String hoge;
@Listen("hoge-changed")
void hogeKawatta(e,[_]) => print("Kitsune!");
このとき、プロパティは2Way-bindingにする必要があるらしいですよ。
っていうか、[_]って何?
コメント
コメントを投稿