これらの機能を持つビューがあります-
initialize:=>
@populateSearchHistory()
@el
populateSearchHistory:=>
console.log(pastSearches)
@$el.find("#searchHistoryContainer").append(Handlebars.templates["$$ uri $$-searchHistory"]())
@collection.add(stuff)
@collection.on "add", (toAdd)->
console.log(toAdd)
ただし、「追加」はログに記録されません。何が起こっている?
アップデート-
初期化関数でこれを試しました-
initialize:=>
@collection.on "add", @populateSearchHistory
populateSearchHistory の現在の場所
populateSearchHistory:(toAdd)=>
console.log(toAdd)
しかし、toAdd は空のモデルです。追加した値が必要です。
UPDATE- コンパイルされた JavaScript
var _this = this;
({
initialize: function() {
_this.populateSearchHistory();
return _this.el;
},
populateSearchHistory: function() {
console.log(pastSearches);
_this.$el.find("#searchHistoryContainer").append(Handlebars.templates["$$ uri $$-searchHistory"]());
return _this.collection.add(stuff);
}
});
this.collection.on("add", function(toAdd) {
return console.log(toAdd);
});
アップデート
OK - init 関数のバインドが機能し、初期化されていないクエリが渡されたのは、for ループがコレクションを通過し、コレクション内の各モデルを追加したためです - 各モデルは未定義でした - なぜこれが起こっているのですか?