0
我正在做一個簡單的AJAX調用來追加一個專輯的曲目在一個無序列表中。這將追加第二次點擊軌道與此代碼:骨幹回調函數,成功不觸發代碼
window.app.views.AlbumView = Backbone.View.extend({...
events: {
'click .queue-add' : 'selectAlbum',
'click .show-tracks' : 'showTracks',
'click .hide-tracks' : 'hideTracks',
},
showTracks: function(){
_this = this
this.model.getTracks().forEach(function(track){
_this.$el.find('.tracks').append("<li>"+track.attributes.title+"</li>");
});
},
顯然,軌道沒有及時已經獲取了第一次點擊,所以我說像這樣的回調函數,該showTracks方法:
showTracks: function(){
_this = this
this.model.getTracks({
success: function(tracks){
console.log(tracks);
tracks.forEach(function(track){
_this.$el.find('.tracks').append("<li>"+track.attributes.title+"</li>");
});
}
});
},
然而,它不會進入塊和console.log(軌道);對控制檯沒有任何影響。
任何提示將真的很棒這裏,謝謝!
app.models.Album = Backbone.Model.extend({
....
getTracks: function() {
this.tracks.fetch();
return this.tracks
},
....
});
getTracks看起來像什麼? –
只需在發佈中添加以下內容。 getTracks:function(){this.tracks.fetch(); {0} {0} return this.tracks }, –
爲什麼不'getTracks:function(opts){this.tracks.fetch(opts); ...'? '_this = this'創建一個全局變量,你可能需要'var _this = this'。 –