敲除中的with binding对于comment / less binding具有不同的行为

时间:2013-07-10 08:04:55

标签: knockout.js

方法1: FAILS

<div>number:</div>
<div data-bind="with: Selected().alarmtime"></div>

结果是:

essage:TypeError:无法读取null的属性'alarmtime'; 绑定值:with:Selected()。alarmtime Error {}

方法2: SUCCEEDS

<!-- ko with: Selected() -->
<div data-bind="text: alarmtime"></div>
<!-- /ko -->

为什么会出现不同的行为?

1 个答案:

答案 0 :(得分:0)

在第一种情况下,敲除尝试评估完整表达式 - Selected().alarmtime,那时Selected()为空。因此,ko会尝试在alarmtime中找到导致错误的null属性。

在第二种情况下ko仅评估Selected()表达式,其等于null,因此ko不会渲染div,也不会尝试评估Selected().alarmtime }。