可观察元素的数组未更新

Sal*_*ali 2 javascript knockout.js

我有一个可观察的数组,里面有一些对象.此对象的一个​​属性是可观察元素数组(字符串格式的日期).这是一个可重复的小例子:

this.groups = ko.observableArray([{
    name:       ko.observable("name"),
    deadlines:  [
        ko.observable("2010-02-08"),
        ko.observable("2013-06-18"),
        ko.observable("2015-01-23"),
    ]
}]);
Run Code Online (Sandbox Code Playgroud)

我用以下格式表示它们:

<tbody data-bind="foreach: groups">
        <tr>
            <td>
                <input type="text" placeholder="name" data-bind="value: name"><br><br><br>
                <span data-bind="text: name"></span>
            </td>
            <!-- ko foreach: deadlines -->
            <td>
                <input type="date" data-bind="value: $data"><br><br><br>
                <span data-bind="text: $data"></span>
            </td>
            <!-- /ko -->
        </tr>
    </tbody>
Run Code Online (Sandbox Code Playgroud)

问题是,当我更新其中一个日期时,它们不会更新.这是一个JSfiddle示例:正如您在2010-02-08更新时看到的那样,基础文本保持不变.

起初我还以为它是与日期有约束力的,但在尝试后这个我看到它是不是这样的.什么出错了?

Jef*_*ado 6

绑定到$rawData相反.

<!-- ko foreach: deadlines -->
<td>
    <input type="date" data-bind="value: $rawData"><br><br><br>
    <span data-bind="text: $data"></span>
</td>
<!-- /ko -->
Run Code Online (Sandbox Code Playgroud)

数组的项总是被解包,所以你有效地绑定了observable的值,而不是observable本身.该$rawData变量使您可以访问未解包的项目.