我目前正在开发一个Ember项目,我在Route
的{{1}}函数中获取复杂的JSON响应。在相应的模板中,我显示响应的属性。对于其中一些,有一些可用的行为会导致此模型发生变化。
我希望使用Ember的绑定直接在UI中反映这些更改。不幸的是,虽然使用model
访问ObjectController
中的顶级响应属性效果很好,但在其中一个子属性上尝试相同(或this.get('attributeFromJson')
)不起作用。< / p>
我已经制作了以下JSFiddle来演示问题:http://jsfiddle.net/KkD6U/
我的理解是,我需要手动将响应转换为set
,以便从Ember.Object
mixin中受益。
我的问题是:是否有任何简单的Ember方法可以将整个JSON响应自动“深度包装”到Ember.Observable
的结构中,以便在整个响应中使用Ember.Object
和get
?什么是简单的Ember方式呢?
更新
与此同时,我构建了一个简单的函数来将普通的JS对象转换为Ember对象,请参见jsFiddle:http://jsfiddle.net/5vEcL/1/
看起来可行吗?
答案 0 :(得分:0)
我的理解是我需要手动将响应转换为Ember.Object,以便从其Ember.Observable mixin中受益。
基本上是的,如果您将子对象包装在Ember.Object.create(...)
中,它将与ember的绑定机制一起使用:
...
anArray: [
Ember.Object.create({
id: '1',
anotherAttribute: '123'
}),
Ember.Object.create({
id: '2',
anotherAttribute: '456'
})
]
...
请在此处查看上述示例的修改过的jsfiddle:http://jsfiddle.net/ZZFkA/
希望它有所帮助。