私の悪い英語を申し訳ありません。以下は、なぜ起こるかを教えてください:間違ったバックボーン収集長。 Can not each collection
を私はいくつかのバックボーンコレクションを持っている:
var Background = window.Models.Background = Backbone.Model.extend({});
var Backgrounds = window.Models.Backgrounds = Backbone.Collection.extend({
model: window.Models.Background,
url: '/backgrounds/',
initialize: function() {
this.fetch({
success: this.fetchSuccess(this),
error: this.fetchError
});
},
fetchSuccess: function(collect_model) {
new BackgroundsView ({ collection : collect_model });
},
fetchError: function() {
throw new Error("Error fetching backgrounds");
}
});
そして、いくつかのビュー:
var BackgroundsView = window.Views.BackgroundsView = Backbone.View.extend({
tagName: 'div',
className: 'hor_slider',
initialize: function() {
this.render();
},
render: function() {
console.log(this.collection);
this.collection.each(function (background) {
console.log(background);
//var backgroundView = new BackgroundView ({ model: background });
//this.$el.append(backgroundView.render().el);
});
}
});
は今、私はコレクション
var backgrounds = new Models.Backgrounds();
を作成するが、私はしなければなりませんこのビューをレンダリングします。コレクションのソートの過程で、その長さは0ですが、2でなければなりません。 This log I see at console。これはどのように可能ですか?私は何を間違えているのですか?
もっとシンプルにしてみませんか?コレクションの変更をリッスンするリスナーをビューに設定し、変更ごとにビューを再レンダリングします。 – MorKadosh
@MorKadosh、あなたが言うように私はそうしようとしました。しかし、私はコレクションの初期化の直後に "ビュー"を作成する必要があります。しかし、実際には、コードの実行終了時に「フェッチ」が発生します。呼び出しの時点で、 "fetchSuccess"コレクションはまだ準備ができていません。 – JeiKei