0
정렬되지 않은 목록에 앨범 트랙을 추가하는 간단한 AJAX 호출을 수행하고 있습니다.백본 콜백 함수, 성공 코드를 트리거하지 않음
: 그래서 지금처럼 showTracks 방법에 콜백 함수를 추가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: 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(); return this.tracks }, –
왜 'getTracks : function (opts) {this.tracks.fetch (opts); ... '? 그리고'_this = this'는 전역 변수를 생성합니다. 아마도'var _this = this'를 원할 것입니다. –