我有一個表像這樣Backbone.js的鏈接模型和視圖
<table>
<tr id="row-one" class="item-row">
<td class="price"></td>
<td><input type="text" class="quantity" value="" /></td>
</tr>
<tr id="row-two" class="item-row">
<td class="price"></td>
<td><input type="text" class="quantity" value="" /></td>
</tr>
<tr id="subtotal">
<td id="subtotal"></td>
<td id="subquantity"></td>
</tr>
</table>
,我有了這個主心骨js代碼
<script type="text/javascript">
jQuery(document).ready(function($){
var Item = Backbone.Model.extend({
initialize: function(){
},
defaults: {
price: 0,
quantity: 0
}
});
var ItemsCollection = Backbone.Collection.extend({
model : Item,
subquantity: function(){
subquantity = 0;
this.each(function(item){
subquantity += item.get('quantity');
});
return subquantity;
}
});
var ItemView = Backbone.View.extend({
events: {
"change .quantity": "updateQuantity"
},
render: function(){
alert('render');
},
updateQuantity: function(){
this.model.set({quantity: this.$('.quantity').val()});
console.log(this.model.get('quantity'));
}
});
var totals = new ItemsCollection();
var item_one = new Item({ price:1,quantity:10 });
var item_two = new Item({ price:1,quantity:20 });
totals.add(item_one);
totals.add(item_two);
var view_one = new ItemView({model:item_one,el:'.item-row'});
})
</script>
我的問題是操縱。
1)到目前爲止,我可以管理一行,沒關係。但是我想管理第二行。我是否只是實例化ItemView
的另一個實例?或者我可以使用一個ItemView
實例來管理多個Models
?或更好的是,與Collection
2)我使用Collection
來管理小計和子量。我是否創建一個單獨的視圖來管理DOM中的這些字段?或者我應該在集合中更新它們?
如果有人有任何其他提示,我很樂意聽到它。這是我第一次接觸骨幹,所以我只想盡可能多地瞭解信息。謝謝!
感謝您的詳細回覆。我會審查你的建議,並讓你知道結果如何。我之所以選擇硬編碼的DOM與ajaxing的原因是因爲其中一個已經存在了,我不想經歷一個簡化它的麻煩。但我認爲你正指着我朝着正確的方向前進。謝謝! – vinhboy