在 Ember.js 中观察嵌套数组中对象属性的变化

Observe change of object proprty in nested array in Ember.js

我们有这个数据结构

[[{foo:"12", bar:"34"}, {foo:"33", bar:"55"}], [{foo:"45", bar:"67"}]]

如何计算 属性 以观察 foobar 上的变化?

通常您在计算 属性 中使用 .@each.someProperty 来观察数组中的特定对象属性,但在嵌套数组(或嵌套对象)的情况下,您不能这样做 .@each.@each.someProperty 因为 .@each 只能深入一层。

您需要使用中间计算属性将内部对象提升一个(或多个)级别,并让另一个计算 属性 依次观察这些。可能还有其他连接方式,但这是一种非常简单的方式。

这里有一个 twiddle 来演示它。如果您打开控制台,您可以看到记录发生变化的各个计算属性。

您还可以使用 alias 将内部数组/对象拉高一个或两个级别。