可观察元素数组未更新
Array of observable elements is not updating
我有一个可观察数组,里面有一些对象。该对象的属性之一是可观察元素数组(字符串格式的日期)。这是一个可重现的小例子:
this.groups = ko.observableArray([{
name: ko.observable("name"),
deadlines: [
ko.observable("2010-02-08"),
ko.observable("2013-06-18"),
ko.observable("2015-01-23"),
]
}]);
我以以下格式代表他们:
<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>
问题是当我更新其中一个日期时,它们没有更新。这是一个 JSfiddle example:正如您在 2010-02-08 更新时看到的那样,基础文本保持不变。
一开始我以为是跟绑定的日期有关,试了下this发现不是这样的。知道哪里出了问题吗?
改为绑定到 $rawData
。
<!-- ko foreach: deadlines -->
<td>
<input type="date" data-bind="value: $rawData"><br><br><br>
<span data-bind="text: $data"></span>
</td>
<!-- /ko -->
数组项总是展开的,因此您有效地绑定了可观察对象的值,而不是可观察对象本身。 $rawData
变量使您可以访问未展开的项目。
我有一个可观察数组,里面有一些对象。该对象的属性之一是可观察元素数组(字符串格式的日期)。这是一个可重现的小例子:
this.groups = ko.observableArray([{
name: ko.observable("name"),
deadlines: [
ko.observable("2010-02-08"),
ko.observable("2013-06-18"),
ko.observable("2015-01-23"),
]
}]);
我以以下格式代表他们:
<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>
问题是当我更新其中一个日期时,它们没有更新。这是一个 JSfiddle example:正如您在 2010-02-08 更新时看到的那样,基础文本保持不变。
一开始我以为是跟绑定的日期有关,试了下this发现不是这样的。知道哪里出了问题吗?
改为绑定到 $rawData
。
<!-- ko foreach: deadlines -->
<td>
<input type="date" data-bind="value: $rawData"><br><br><br>
<span data-bind="text: $data"></span>
</td>
<!-- /ko -->
数组项总是展开的,因此您有效地绑定了可观察对象的值,而不是可观察对象本身。 $rawData
变量使您可以访问未展开的项目。