敲除无法处理绑定

Knockout unable to process binding

未定义的文本如何绑定?例如名称不可用:

<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>

我收到这个错误:

Uncaught ReferenceError: Unable to process binding "text: function (){return name }"
Message: name is not defined 

您可以通过始终表示当前视图模型的 $data 绑定上下文 属性 访问 name:

  <tbody data-bind="foreach: records">
    <tr>
      <td data-bind="text: id"></td>
      <td data-bind="text: $data.name"></td>
    </tr>
  </tbody>

使用这种方法,如果 records 中的一项没有 name 属性,KO 将不会抛出异常。

没有 $data,名为 name 的标识符是未定义的。但是 $data.name 始终是一个有效的表达式它只是 returns undefined 如果当前视图模型没有名为 name.

的 属性