4

我的视图模型中有一个字符串列表。要编辑它们,我希望每个都显示为<li>带有文本框的 a,并<button>删除该项目。所以,对于 list ['A', 'B'],我想要这样的东西:

<ul data-bind="foreach: titles">
    <li>
        <input value="A" data-bind="value:$data" />
        <button data-bind="click: $root.remove">remove</button>
    </li>
    <li>
        <input value="B" data-bind="value:$data" />
        <button data-bind="click: $root.remove">remove</button>
    </li>
</ul>
<button data-bind="click: add">add</button>

我最初可以创建它,但没有更新值以反映在视图模型中,并且无法使删除按钮正常工作。

我最初有一个observableArray纯字符串,然后更新为一个observableArray字符串observable。使用纯字符串,删除按钮可以工作,但可以预见的是,它没有更新视图模型。

我已经设置了一个 JS fiddle,这个问题相当孤立:http: //jsfiddle.net/bdukes/uvyH3/2/

如果有一种既定或更好的方法可以做到这一点,我很想知道。

此外,作为一个不相关(且不太重要)的问题,该stringifyJson实用程序似乎总是给我数组中每个项目的空结果。

4

1 回答 1

6

Knockout 目前不能很好地与一系列纯 observables 一起工作(在此处记录的问题)。

为了使其正常工作,您需要您的项目是包含可观察对象的对象,例如:

{ val: ko.observable("something") }

这是您更新的小提琴以使用这些类型的对象:http: //jsfiddle.net/rniemeyer/GgFa9/

于 2012-05-16T15:02:58.560 回答