うん、私はバックボーンとアンダースコアの初心者です。まず、すべてのオンライン例を読み終えたと言わせてください。しかし、まだ何かが足りません。
何が起こっているのかというと、オブジェクトのリストを正常にロードしていますが、[削除]をクリックすると、すべてのオブジェクトが処理されます。これは、個々のアイテムを正しく割り当てていないためですが、原因がわかりません。
私はいくつかの助けが欲しいです。
これが基本的なhtmlコードです
<div id="itemid" class="view">
<span class="text">{{-text}}</span>
<a id="dele" data-role="button" data-inline="true" data-icon='delete' >Delete</a>
</div>
これは私のアイテムリストコードです
bb.view.List = Backbone.View.extend(_.extend({
tagName: "ul",
initialize: function( items ) {
var self = this
_.bindAll(self)
self.setElement('#itemid')
self.elem = {
text: self.$el.find('#text')
}
self.items = items
},
render: function(items) {
var self = this
self.$el.empty()
self.items.each(function(item){
var itemview = new bb.view.Item({
model: item
})
itemview.render()
})
}
},scrollContent))
最後に、個々のアイテムのアイテムビューです。以下のテンプレートコードに注意してください。
bb.view.Item = Backbone.View.extend(_.extend({
tagName: "li",
events: {
'tap #dele': function(){
var self = this
self.removed()
return false;
}
},
render: function(){
var self = this
_.bindAll(this)
self.setElement('#itemid')
self.elem = {
dele: self.$el.find('#dele')
}
var html = self.tm.item( self.model.toJSON() )
$(this.el).append( html )
},
removed: function()
{
var self = this
this.model.removed();
}
},{
tm: {
item: _.template( $('#itemid').html() )
}
}))
誰かが助けてくれることを願っています
マーク