Closure LibraryのdispatchEvent時に値を渡す方法について
goog.events.listenで登録したイベントに、値を渡したい。
でもドキュメント読んでも引数で渡す設定とかは無さそうだしどうやんねん!
となったので調べたらカスタムイベントを作ればいいっぽい。
// CustomEvent goog.provide('hogehoge.CustomEvent'); goog.require('goog.events.Event'); hogehoge.CustomEvent = function(type, arg) { // type: イベント名, arg: 渡したい値 this.type = type; this.arg = arg; }; goog.inherits(hogehoge.CustomEvent, goog.events.Event);
// dispatchEventで値を渡したいとき
goog.events.dispatchEvent( instance, // イベント発火させたい対象 new hogehoge.CustomEvent('filterChange', {test: 'test'}) );
// 受け取るとき
goog.events.listen(
instance,
'filterChange',
function(e) {
// e.arg == {test: 'test'}
}
);
なるほど。