Knockout.js 敲除无法处理绑定

Knockout.js 敲除无法处理绑定,knockout.js,Knockout.js,未定义的文本如何绑定?例如,名称不可用: <table id="recordTbl" data-bind="visible: records().length &gt; 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 &gt; 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>