0
單擊按鈕不止一次會複製UI中的數據。KnockoutJS在第二次綁定後在UI中複製數據
我期待什麼的每次點擊:* Name1 * Name2
但是:* Name1 * Name1 * Name2 * Name2
<html>
<head>
<script src="http://knockoutjs.com/downloads/knockout-3.3.0.js" type="text/javascript"></script>
</head>
<body>
<div id="myDiv">
<div data-bind="foreach: Data">
* <span data-bind="text: Name"></span>
</div>
</div>
<button onclick="f1()">Click Me!</button>
<script type="text/javascript">
function myViewModel(data){
var self = this;
self.Data = data;
}
function f1() {
var d = [{ "Name": "Name1" }, { "Name": "Name2" }];
ko.cleanNode(document.getElementById('myDiv'));
ko.applyBindings(new myViewModel(d), document.getElementById('myDiv'));
return false;
}
</script>
</body>
</html>
ko.cleanNode不會刪除已添加的DOM元素(請參閱https://github.com/knockout/knockout/issues/912)。因此,在第一次點擊HTML後,您的HTML將如下所示:'
@nemesv好評,我認爲這也值得回答。 – Jeroen
理想情況下,您應該更新視圖模型屬性,而不是刪除並重新創建綁定。如果你仍然想這樣做,爲什麼不移除'#myDiv' DOM元素,從頭創建並綁定新模型。您可以將HTML保存在'