动态删除按钮

时间:2014-05-07 10:35:32

标签: javascript knockout.js knockout-2.0

在这个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

也可以告诉我如何只添加时间按钮。

1 个答案:

答案 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