gpt4 book ai didi

ember.js - 使用 Ember 的 "observes(..)"观察一些数组的修改

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

Ember 的 v1.0.0-rc.3 文档 Ember.Array 说:

You can use the methods defined in this module to access and modify array contents in a KVO-friendly way. You can also be notified whenever the membership if [sic] an array changes by changing the syntax of the property to .observes('*myProperty.[]').



我试图想出一个最小的例子来观察数组的变化,但不能让观察者着火。工作样本是什么样的?

附言通知 this gotcha .

最佳答案

哦,嘿,这就是我的答案!

您可以通过多种方式观察 Em.A()特性。您有 .observes('a.[]') , .observes('a.@each') , 和 .observes('a.length') .这个概念与 Ember 中的任何属性相同,你只需要直接操作数组并且观察者应该触发。显然使用 set方法不适用于(Ember)数组,所以也许这就是你出错的地方?

我已经修改了我的旧 jsfiddle考虑到一个可观察的数组(我也将所有内容都更新到了最新版本)。

我认为重要的是要记住 Ember Array 实际上并不是一个数组 - 它是一个具有一些自定义函数和属性的对象,用于实现您常用的数组 javascript 函数。所以你不能做这样的事情:Em.A() = [1,2,3] ,因为Em.A的类型是一个对象,而不是一个数组。

另一个有用的注意事项是 ArrayControllers 具有 Ember Array 的内容,这意味着您必须遵守 内容数组 ,而不是内容本身(即不要观察 arraycontroller.content ,而是观察 arraycontroller.content.[] )。

这就是为什么你必须观察奇怪的样子 prop.[] Ember Array 上的属性,因为 Ember Array 的值不是您所期望的。

关于ember.js - 使用 Ember 的 "observes(..)"观察一些数组的修改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16269768/

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