13

こんなことしたい

// WARNING: this code does not work, it's illustrative
query("#myBtn").onClick.listen((e) {
  window.fire["foo"];
});

window.on["foo"].listen((e) => print("foo was here"));

window.on["foo"].listen((e) => print("and here"));

出来ますか?どのように?私は数時間グーグルで検索してきましたが、プログラミング全般に慣れていないので、この種のキーワードはよくわかりません。

ありがとう!:)

-編集:解決済み-

引数を渡す方法は次のとおりです(エディターは文句を言いますが、機能します)

List<String> myData = ["one","two"];

query("#myBtn").onClick.listen((e) {
  window.on["foo"].dispatch(new CustomEvent("foo", canBubble: false, cancelable: false, detail: myData));
});

window.on["foo"].add((e) => print( e.detail[1] ));

:-)

4

2 に答える 2

15

データを渡したいとおっしゃいました。このクラスがあると仮定しましょう:

class Person {
    String name;
    int age;
}

次に、このリスナー:

window.on['foo'].listen((e) {
  Person p = e.detail;

  print(p.name); // Jack
});

データを渡す必要があるのは、次のようなものを書くことだけです。

var p = new Person()
  ..name = 'Jack'
  ..age = 25;

var e = new CustomEvent('foo', detail: p);

window.on['foo'].dispatch(e);

これがそれを行う方法です。ドキュメントを参照してください:

于 2012-12-16T14:15:54.593 に答える
6

これはうまくいくはずです:

window.on['foo'].listen((e) => print("foo was here"));

ドキュメントを参照してください:

于 2012-12-15T23:27:46.770 に答える