gpt4 book ai didi

Ember.js 计算属性上的观察者,不起作用。指南中的示例

转载 作者:行者123 更新时间:2023-12-03 06:41:30 27 4
gpt4 key购买 nike

我正在学习 Ember.js 并阅读一些指南。我在这里读到关于观察者的文章: http://emberjs.com/guides/object-model/observers/

我想尝试一下这个示例,所以我将其复制并粘贴到我的 js 文件中。在向观察者回调添加警报语句后,我惊讶地发现它没有被调用。

http://jsbin.com/UWEseSo/2/edit?js,output

如果您添加:我就能发现:

person.get('fullName');

在调用设置firstName之前,将调用观察者回调。如果我在回调后立即再次设置名字,则不会再次调用。

谁能解释一下这是怎么回事?

谢谢。

编辑--------

我对代码进行了更多的追踪,现在我知道为什么这种行为可能是这样的。虽然这个例子看起来有一个错误,但它可能只是一种优化。我之前观察到,如果我调用“get”,观察者就会工作。如果我不调用“get”,观察者将无法工作。我相信 Ember.js 可能只是在这方面很聪明,并且在没有调用“get”的情况下故意不去调用观察者。他们这样做可能是因为如果没有“get”,则没有理由调用观察者,因为应用程序不可能显示过时的信息。

一旦调用“get”,就会设置一个内部标志,以确保在下一个“set”时调用观察者。

最佳答案

看来您自己对此行为的解释是正确的,并且为了证实您的假设,在 rc8 中确实引入了主要出于性能原因的更改。

您可以阅读here完整的文章,位于未消耗的计算属性不会触发观察者

这基本上意味着,如果您需要观察计算属性但当前没有检索它,只需在 init 方法中get它即可。

希望有帮助。

关于Ember.js 计算属性上的观察者,不起作用。指南中的示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19345553/

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