如何在Ember.js中创建嵌套模型?

前端之家收集整理的这篇文章主要介绍了如何在Ember.js中创建嵌套模型?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_403_0@
通过Ember.js文档,我无法弄清楚如何创建嵌套模型.假设我有以下 JSON
App.jsonObject = {
    id: 1812,name: 'Brokerage Account',positions: [
        {
            symbol: 'AAPL',quantity: '300'
        },{
            symbol: 'GOOG',quantity: '500'
        }
    ]
}

如果我创建一个这样的模型对象

App.account = Ember.Object.create(App.jsonObject);

只有顶层属性(id和name)绑定到模板,嵌套的位置数组不会被正确绑定.因此,添加,删除或更新位置不会影响显示.是否有手动或自动的方式来转换位置数组,使其具有绑定感知(类似于WPF中的ObservableCollection)?

我创建了一个jsfiddle来实验:http://jsfiddle.net/nareshbhatia/357sg/.如你所见,顶级属性的更改反映在输出中,但是对位置的任何更改都不是.我非常感谢任何关于如何做到这一点的提示.

谢谢.

纳雷什

编辑:
理想的情况是,如果Ember.js可以以某种方式将我的JSON Feed解析成嵌套的Ember.js对象.例如,如果我明确定义我的类如下,可以帮助Ember.js创建正确的对象?

App.Account = Ember.Object.extend({
    id: null,name: null,positions: Ember.ArrayProxy.create()
});

App.Position = Ember.Object.extend({
    symbol: null,quantity: null,lastTrade: null
});

App.account = App.Account.create(App.jsonObject);

我的最终目标是在分层网格中显示此结构,可以在帐户级展开/折叠.来自WPF / Silverlight的世界,这样做很容易.所有您需要做的是为XAML中的网格指定一个嵌套模板,它知道如何解释模型.你可以找到一个例子here – 这不是太难遵循.我想知道如果这样的事情可能在Ember.js.

解决方法

当使用绑定添加到Ember数组对象时,需要使用pushObject not push.而您应该在访问position属性时使用get().看我的jsFiddle的更正.

http://jsfiddle.net/ud3323/Y5nG5/

猜你在找的JavaScript相关文章