gpt4 book ai didi

knockout.js - knockout 嵌套对象和括号

转载 作者:行者123 更新时间:2023-12-04 14:03:13 24 4
gpt4 key购买 nike

有几件事我不明白。
根据 KO 文档(以及关于 SO 的许多帖子),在查询和编写 observable 时应该使用括号。但是在绑定(bind)子属性时,在我看来,是否使用括号并不重要。

<span data-bind="text: selectedMessage() && selectedMessage().message().subject()"></span>
<span data-bind="text: selectedMessage() && selectedMessage().message().subject"></span>

= 都返回正确的值。

谁能向我解释这是为什么?

fiddle : http://jsfiddle.net/viktorb/DKg74/

最佳答案

如果绑定(bind)值是一个 observable,KO 会为你“解包”它,所以你不必自己用括号解包(或调用 ko.utils.unwrapObservable)。

在您的第二个示例中,绑定(bind)值为:selectedMessage() && selectedMessage().message().subject .当此表达式计算为 subject属性,KO 看到评估的值是一个可观察的,所以它为你解开它。 (在内部这可能只是对 ko.utils.unwrapObservable 的调用)。

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

关于knockout.js - knockout 嵌套对象和括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13444315/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com