我们说我有以下数据:
[
{ id: "54101", name: "A\1" },
{ id: "cbbb4", name: "A\2" },
{ id: "b4e37", name: "B\1" },
{ id: "ff099", name: "B\2" },
{ id: "8715f", name: "B\3" },
{ id: "1f414", name: "C\1\a" },
{ id: "77ba6", name: "C\1\b" }
]
通过我路线中的承诺加载。
我想拥有一个名为rootNode
的属性,它具有以下结构:
(我已经有了使用POJO执行此操作的代码,因此可以忽略转换此对象所需的逻辑)
{
name: null,
value: null,
children: [
{
name: "A",
value: null,
children: [
{ name: "1", value: /* object above */, children: [] },
{ name: "2", value: /* object above */, children: [] }
]
},
{
name: "B",
value: null,
children: [
{ name: "1", value: /* object above */, children: [] },
{ name: "2", value: /* object above */, children: [] },
{ name: "3", value: /* object above */, children: [] }
]
},
{
name: "C",
value: null,
children: [
{
name: "1",
value: null,
children: [
{ name: "a", value: /* object above */, children: [] },
{ name: "b", value: /* object above */, children: [] }
]
}
]
}
]
}
使用Ember,是否可以创建一个计算属性,只要任何名称发生更改,或者添加或删除项目,都会更新此树?
我现在已经18小时都在使用Ember,而且我有点迷失了。我已经使用Angular的$watch
功能实现了这一功能,但由于其他方面的限制,我不得不离开Angular。
答案 0 :(得分:5)
您可以使用@each
:
Ember.computed('myArrayProp.@each.somePropToObserve', function() {
/* your code here */
})