knockout.js – Knockout嵌套对象和括号

前端之家收集整理的这篇文章主要介绍了knockout.js – Knockout嵌套对象和括号前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我没有得到的东西很少.
根据KO文档(以及SO上的许多帖子),在查询和编写可观察对象时应使用括号.但是在绑定子属性时,在我看来,如果使用括号,则无关紧要.
<span data-bind="text: selectedMessage() && selectedMessage().message().subject()"></span>
<span data-bind="text: selectedMessage() && selectedMessage().message().subject"></span>

=两者都返回正确的值.

任何人都可以向我解释为什么会这样吗?

小提琴:http://jsfiddle.net/viktorb/DKg74/

解决方法

如果绑定值是可观察的,KO会为您“解包”它,因此您不必使用括号(或调用ko.utils.unwrapObservable)自行解包.

在您的第二个示例中,绑定值为:selectedMessage()&& selectedMessage().消息().受试者.当此表达式求值为subject属性时,KO会看到求值的值是可观察的,因此它会为您解包. (在内部,这可能只是对ko.utils.unwrapObservable的调用).

但是,由于表达式没有计算message属性,我假设它也是一个可观察的,用于访问该属性的括号是必要的(例如selectedMessage().message.subject不起作用).

猜你在找的JavaScript相关文章