Knockout绑定不会使用简单的observable数组进行更新

bdu*_*kes 4 knockout.js

我的视图模型中有一个字符串列表.要编辑它们,我希望每个都显示为<li>带有文本框,以及<button>删除项目.所以,对于列表['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>
Run Code Online (Sandbox Code Playgroud)

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

我最初有一个observableArray简单的字符串,然后更新到observableArrayobservable字符串.使用纯字符串,删除按钮有效,但可以预见,它不会更新视图模型.

我设置了一个相当孤立的JS小提琴:http://jsfiddle.net/bdukes/uvyH3/2/

如果有一种既定或更好的方法,我很想知道.

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

RP *_*yer 6

Knockout目前不适用于一系列纯可观察数据(此处记录的问题).

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

{ val: ko.observable("something") }
Run Code Online (Sandbox Code Playgroud)

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