通过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的更正.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。