我可以为数组或简单对象进行淘汰工作,但不能用于简单的json对象。 有人可以提供指针plz。
HTML:
<table>
<tbody>
<tr><td>customer Number: </td><td data-bind="text: customerData().reference"></td></tr>
<tr><td>customer Name: </td><td data-bind="text: customerData().name"></td></tr>
<tr><td>customer Manager Code: </td><td data-bind="text: customerData().managerCode"></td></tr>
</tbody>
</table>
的javascript:
var viewModel = {
customerData: ko.observable()
};
ko.applyBindings(viewModel);
viewModel.customerData({
reference: 123,
name: "bob",
managerCode: 321
});
答案 0 :(得分:4)
看看控制台。当您致电applyBindings
时,它会抛出错误,因为它会尝试访问customerData().reference
,但此时customerData()
未定义。将.applyBindings
移到您指定customerData
值的位置下方。
请参阅:http://jsfiddle.net/aECM9/2/
另一个替代方法是使用if
绑定来阻止knockout尝试绑定customerData()
上的属性,然后才能获得值:
<tbody data-bind="if: customerData()">
如果</tbody>
是假的,那么在此之后,对于结束customerData()
标记的任何内容都不会呈现。
我使用了tbody
,但您可以使用任何合适的父标记甚至虚拟标记:
<!-- ko if: customerData() -->