вы теряете контекст выполнения, когда вызывается функция обратного вызова для каждого метода
используйте _.bind(this.render_match, this)
при передаче обратного вызова, чтобы убедиться, что render_match
имеет правильный контекст
и вы получили ошибку, потому что вы не обернули функцию обратного вызова для метода getJson
. Вы также должны использовать метод подчеркивания bind
.
Вы должны прочитать немного о javascript this
и о том, как его приручить - попробуйте здесь http://yehudakatz.com/2011/08/11/understanding-javascript-function-invocation-and-this/
Правильный код должен выглядеть примерно так ...
get_results: function(){
$.getJSON(this.url, _.bind(function(response){
this.search_results = new Kitchon.Collections.searchList(response);
console.log(this.search_results);
this.search_results.each(_.bind(this.render_match, this));
}, this));
},
render_match: function(model){
console.log(model)
},
Хотя из того, что я вижу - я предполагаю, что код, который вы здесь показали, является либо моделью, либо коллекцией - обрабатывает рендеринг вида - вы не должны этого делать! Модели и коллекции предназначены только для хранения и анализа данных - весь рендеринг и управление потоком приложений должны выполняться в представлении (контроллерах) с помощью маршрутизатора.