在这个fiddle中,在约会选项卡下,有一个添加计时按钮。当单击此按钮时,会添加一个新行以及另一个添加计时按钮。但我不想要另一个添加计时按钮所以我做了这个fiddle
增加了班级时间
<button class="btn btn-primary timing" type="button" data-bind="click: $parent.addSlot" value="Add">Add Timing</button>
和 在js
self.addSlot = function () {
//self.schedules.push(new Model.Schedule(null));
console.log('added');
self.doctor.schedules.push(new Schedule(null));
$('.timing:last').hide();
};
现在上面的小问题有一个JSON,所以最初只添加了一个添加计时按钮,但如果JSON为2则添加2个添加计时按钮,如fiddle
也可以告诉我如何只添加时间按钮。
答案 0 :(得分:2)
您可以在表格外移动Add Timing
按钮,然后访问$root
上下文,而不是$parent
上下文
<!-- ... -->
</table>
<button class="btn btn-primary timing" type="button" data-bind="click: $root.addSlot" value="Add">Add Timing</button>
这样,Add Timing
按钮不会与每个条目重复。您还必须删除
$('.timing:last').hide();
否则,该按钮将在您首次添加时隐藏。
查看更新的JSFiddle
更新
根据Binding context,$data
在这种情况下效果相同
data-bind="click: $data.addSlot"
查看另一个JSFiddle