Knockout.js 敲除无法处理绑定
未定义的文本如何绑定?例如,名称不可用:Knockout.js 敲除无法处理绑定,knockout.js,Knockout.js,未定义的文本如何绑定?例如,名称不可用: <table id="recordTbl" data-bind="visible: records().length > 0" class="table"> <thead> <tr> <th class="col-md-4">ID</th> <th class="col-md-4">Name</th> </t
<table id="recordTbl" data-bind="visible: records().length > 0" class="table">
<thead>
<tr>
<th class="col-md-4">ID</th>
<th class="col-md-4">Name</th>
</tr>
</thead>
<tbody data-bind="foreach: records">
<tr>
<td data-bind="text: id"></td>
<td data-bind="text: name"></td>
</tr>
</tbody>
</table>
您可以通过始终表示当前视图模型的
$data
绑定上下文属性访问名称
:
<tbody data-bind="foreach: records">
<tr>
<td data-bind="text: id"></td>
<td data-bind="text: $data.name"></td>
</tr>
</tbody>
使用这种方法,如果记录
中的某个项没有名称
属性,KO不会抛出异常
如果没有
$data
,则未定义名为name
的标识符。但是,$data.name
始终是一个有效的表达式,如果当前视图模型没有名为name
的属性,则它只返回未定义的属性。您的意思是记录的某些项没有name
属性吗?有办法吗?即使对象没有属性(比如注释中的名称),我们能做些什么来停止异常吗O
<tbody data-bind="foreach: records">
<tr>
<td data-bind="text: id"></td>
<td data-bind="text: $data.name"></td>
</tr>
</tbody>