我有一个与Knockoutjs实例相同的模型列表:http://jsfiddle.net/rniemeyer/7RDc3/
主:
var viewModel = new GiftModel([
{ name: "Tall Hat", price: "39.95"},
{ name: "Long Cloak", price: "120.00"}
]);
ko.applyBindings(viewModel);
如何通过按钮单击事件new GiftModel([])
将对象viewModel重置为null或(not use knock out event)
,我想每当点击按钮时,Grid将清空Gift。
示例:
$( "#button" ).click(function() {
clearKnockOutViewModel();
});
---> viewModel将为空,html将清除。
答案 0 :(得分:2)
这是正确的方法。
$( "#button" ).click(function() {
clearKnockOutViewModel();
});
function clearKnockOutViewModel(){
var element = $('#elementId')[0];
ko.cleanNode(element);
ko.applyBindings(viewModel, element);
}
如果清空viewModel逻辑,则会松开它。
答案 1 :(得分:1)
您可以使用for
弹出每个项目。
<button data-bind='click: clearGifts'>Clear Gifts</button>
self.clearGifts = function() {
var length = self.gifts().length;
for (var i = 0 ; i < length ; i++) {
self.gifts.pop();
}
};
编辑:如果礼物是observableArray,您可以使用removeAll。
self.clearGifts = function() {
self.gifts.removeAll();
};