LoginSignup
14
12

More than 5 years have passed since last update.

Backbone.jsでtrigger()を使用した場合のコールバック関数への引数

Last updated at Posted at 2014-08-21

Backbone.jsを使っていて、trigger()で発火するコールバック関数に引数を渡す際につまづいたのでメモ

コールバック関数に渡す引数が1つの場合

trigger()を使用する際、コールバック関数へ1つの引数を渡すには

var arg = "foo";
obj.$el.trigger("func", arg);

→ "foo" がコールバック関数に渡される。

という感じで、第2引数に記述して渡す。

コールバック関数に渡す引数が2つ以上の場合

これがよくわからなくて、とりあえずどっかの本かサイトで

var arg1 = "foo";
var arg2 = "bar";
obj.$el.trigger("func", arg1, arg2);

とあったので、やってみたら渡した先でarg2はundefinedとなってしまった。
実際はこうではなく

obj.$el.trigger("func", [arg1, arg2]);
とやるのが正しいらしい。というか、普通に公式のリファレンスに載っていた。
また、受け取る先の関数では

function callback(arg){
  var arg1 = arg[0];
  var arg2 = arg[1];
  //some code here
}

ではなく

function callback(arg1, arg2){
  //some code here
}

でOKっぽい。

14
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
12