【发布时间】:2017-10-19 07:51:36
【问题描述】:
我是 Backbone.js 的初学者,我很难在两个 Backbone 模型之间建立一对多的关系芯片,并将这些数据显示到 html 表格行中。 我正在使用一台可以有多个订单的机器。数据将如下所示:
- 机器 10 有订单 1,2,5,9。
- 机器 14 有订单 3,4,6。
机器和订单按顺序加上一个FK machine_id。 我正在尝试将带有第一个元素 TH 的 TR 元素作为机器,在第二个/第三个 TH 上我想显示属于机器的订单。
所以我要问的问题是:
- 如何在我的主干模型中建立这种一对多关系。
- 如何在我的下划线模板中创建这个 TR 元素以显示属于机器的订单。
以下是订单和机器的模型:
app.Machine = Backbone.Model.extend({
defaults : {
machine_id : "",
status : "",
description : "",
},
});
app.Order = Backbone.Model.extend({
defaults: {
order_id: "",
description: "",
amount: "",,
begin_date:"",
end_date:"",
machine_id: ""
},
});
app.MachineList = Backbone.Collection.extend({
model: app.Machine
});
观看次数:
app.MachineView = Backbone.View.extend({
className: 'MachineRow',
template: _.template($('#Machine_Template').html()),
render: function(){
this.$el.html(this.template(this.model.attributes));
return this;
}
});
app.MachineListView = Backbone.View.extend({
el: '#Machine',
initialize: function(initialMachine){
this.collection = new app.MachineList(initialMachine);
this.render();
},
render: function(){
this.collection.each(function(item){
this.renderMachine(item);
filterOrder(item.get('machine_id'));
}, this);
},
renderMachine: function(item){
var machineView = new app.MachineView({
model: item
});
$(machineView.render().el).appendTo(this.$el)
}
});
HTML 代码:看起来像这样??
<script id="machine_template" type="text/template">
<th>
<%= machine_id %> //etc
</th>
<th>
<%= order_id %> //etc
</th>
<th>
<%= order_id %> //etc
</th>
</script>
【问题讨论】:
标签: javascript html backbone.js underscore.js lodash