Backbone.js を使用して、API リクエストからアイテム (ステーション) のリストを表示しています。
私の質問は多く寄せられているようです。他の質問の解決策を可能な限り調べましたが、まだ問題があります。
以下のコードは次のとおりです。
(function($) {
_.templateSettings = {
interpolate: /\{\{(.+?)\}\}/g
};
// models
var Station = Backbone.Model.extend({
urlRoot: '../api/admin/stations/',
idAttribute: "_id",
defaults: {
_id: null,
country: 'ZA'
}
});
// collections
var StationList = Backbone.Collection.extend({
model: Station,
url: '../api/admin/stations/'
});
// views
/*
* Station View
*/
var StationView = Backbone.View.extend({
tagName: 'article',
className: 'station-container',
template: $("#stationListTemplate").html(),
render: function() {
this.$el.html(this.template(this.model.toJSON()));
return this;
}
});
/*
* Master View (Station List)
*/
var StationListView = Backbone.View.extend({
el: $("#stationListView"),
initialize: function() {
this.collection = new StationList();
this.collection.fetch({
success: this.render()
});
},
render: function() {
var that = this;
console.log(this.collection.models); // RETURNS EMPTY ARRAY
_.each(this.collection.models, function (item) {
// NOTHING HAPPENS AS THE ARRAY IS EMPTY
that.renderStation(item);
}, this);
},
renderStation: function (item) {
var stationView = new StationView({
model: item
});
console.log(stationView);
this.$el.append(stationView.render().el);
}
});
// load views
var _stationList = new StationListView;
} (jQuery));
エラーが発生した場所について、CAPS で上記のコメントを追加しました。私console.log(that)
またはconsole.log(this.collection)
私がコレクションを見ることはできますが、その直後にそのモデルにアクセスすることはできません.
モデルにアクセスできなくなっている原因が何なのかわかりません。どんな助けでも大歓迎です