私は最近、バックボーン js ファイルを最新バージョンに更新しましたが、何かが壊れていることを知っていますか? とてもイライラします。ビュー内でコレクションをインスタンス化し、コレクションをループしようとしていますが、コレクションの最後のアイテムのみを出力しているため、ここに私のコードがある理由を理解できません
NavView = Backbone.View.extend({
el : $('ul'),
initialize: function(){
_.bindAll(this, 'render');
this.navCollection = new NavigationCollection([ {name: "home", href: '/home'},{name: "about", href:'/about'},{name: "contact", href: '/contact'}]);
this.render();
},
以下のコードからコレクションをレンダリングする多くの方法を試しました
render : function() {
this.navCollection.each(function (item) {
$(this.el).append("<li><a href=" + item.get("href") + ">" + item.get("name") + "</a></li>");
}, this);
return this; // remember this for chaining
//also tried this method as well
_.each(this.navCollection.models, function(item){
//$(this.el).append("<li><a href=" + item.get("href") + ">" + item.get("name") + "</a></li>");
$("<li><a href=" + item.get("href") + ">" + item.get("name") + "</a></li>").appendTo(this.el);
},this)
return this; // remember this for chaining
},
いずれにせよ、3 つのアイテムではなく、最後のアイテムの連絡先のみを出力しています。こちらを参照してくださいhttp://dalydd.com/projects/backbone/backbone.html
var NavigationItem = Backbone.Model.extend({
defaults: {
name: '',
href: '',
last: false,
id: ''
},
initialize: function() {
}
});
var NavigationCollection = Backbone.Collection.extend({
model: NavigationItem,
});
以前はすべてを出力していましたが、バックボーンを新しいバージョンに更新すると、1 しか出力されません。
ありがとう