3
我正在用Backbone.js和Marionette.js建立一張桌子。我的模型集創建了表中的行,將其插入到<tbody>
中。木偶:如何將一個LayoutView作爲一行添加到CompositView表中?
我想在表格頂部附上1個單行,這不是我收藏的一部分。這是以前定義的LayoutView
。
通常我只想補充另一個區域,但因爲我有一張桌子的工作,我不能額外div
年代到tbody
添加爲表都會吐出來的表作爲它不是一個<tr>
內<tbody>
的。
下面是我在我的CompositView的onShow
功能構建這樣的嘗試:
var SetAllTargets = Backbone.Marionette.LayoutView.extend({
template: JST["common/cubes/table/set-all-rows"],
tagName: "tr",
className: "set-all-targets"
});
App.Table = Marionette.CompositeView.extend({
template: JST["common/targets/layout"],
className: "targets",
childView: RowTarget,
childViewContainer: "tbody",
regions: {
targetsRegion: ".targets-region"
},
onShow: function() {
var setAllTargetsRow = new SetAllTargets();
var setAllTargetsRegion = "<tr class='target set-all-targets'></tr>";
this.$el.find("tbody").prepend(setAllTargetsRegion);
this.$el.find(".set-all-targets").show(setAllTargetsRow);
}
)};
的另一種嘗試是把
<tr class='target set-all-targets'> ...child elements here </tr>
到模板,並連接view.el
我onShow
功能像這樣:
onShow: function() {
var setAllTargetsRow = new SetAllTargets();
this.$el.find("tbody").prepend(setAllTargetsRow.el);
}
但是,結果只是HTML <tr class='target set-all-targets'></tr>
被放置在表格的頂部,但沒有任何子元素。
我結束了向我的頭插入額外的行 - 但這是更乾淨。我會盡快更新我的項目。謝謝! – conor909