【发布时间】:2013-01-26 04:13:44
【问题描述】:
在我添加新行后,KO 'observable' 没有释放。
HTML
<input type="text" data-bind="value: newName" />
<button data-bind="click: add">Create</button>
JS
self.newName = ko.observable("");
self.add = function () {
self.clients.push({
Name : self.newName,
})
}
LIST-开始
<ul>
<li>John</li>
<li>Joe</li>
<ul>
生产清单 我使用这些字段并添加有效的“Foo”
<ul>
<li>John</li>
<li>Joe</li>
<li>Foo</li>
<ul>
然后我添加另一个名称“酒吧” ..现在我有(2)'Bar','Foo'被替换
<ul>
<li>John</li>
<li>Joe</li>
<li>Bar</li>
<li>Bar</li>
<ul>
然后我添加另一个名称'JarJar',现在我有(3)'JarJar','Bar'被替换
<ul>
<li>John</li>
<li>Joe</li>
<li>JarJar</li>
<li>JarJar</li>
<li>JarJar</li>
<ul>
但是,当我删除每一行时,它确实删除了选择行,而不是全部 3
如何在添加行时停止 observable 'on the fields'?
我仍然需要将新添加的行添加到 KO 数组中,以便以后访问它。
我想我在 self.add 之后遗漏了一些东西,要么释放该字段的 observable,要么创建一个 = new 的东西,所以 newName 是一个单独的 Array 对象。 (完全不确定..)
【问题讨论】:
标签: arrays knockout.js