私は、バックボーンのドキュメントと一緒に知っている誰かが作成したアプリを見て、バックボーンを学ぼうとしています。このアプリには、バケットモデルと会社モデルがあります(つまり、会社をバケットに入れます)。このビットには、私が不明確なことが1つあります。それは、メソッドの使用trigger
方法です。
バックボーンのドキュメントには、次のように書かれていますtrigger
。
引き金object.trigger(event, [*args])
指定されたイベント、またはスペースで区切られたイベントのリストのコールバックをトリガーします。トリガーする後続の引数は、イベントコールバックに渡されます。
私が見ているコードでtrigger
は、次のように呼ばれています。
this.trigger("add:companies", Companies.get(companyId));
2つの質問:
event
私は会社を経営しているadd
と思いますが、以下のコードのどの時点で実際にそれが起こりますか?this.set({ "companies": arr }, { silent: true });
実行されるのはいつですかthis.save();
、それとも実行されるのはいつですか(または他の何か)?オプションの引数の場合
Companies.get(companyId)
、実際にはどの関数に渡されますか?
元のコードからの抜粋
window.Bucket = Backbone.Model.extend({
defaults: function() {
return {
companies: []
};
},
addCompany: function(companyId) {
var arr = this.get("companies");
arr.push(companyId);
this.set({ "companies": arr }, { silent: true });
this.save();
this.trigger("add:companies", Companies.get(companyId));
},
// ...