gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 13:45:58 25 4
gpt4 key购买 nike

浏览 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)绑定(bind)到模板,嵌套位置数组未正确绑定(bind)。因此,添加、删除或更新位置不会影响显示。是否有手动或自动方法来转换位置数组,使其具有绑定(bind)意识(类似于 WPF 中的 ObservableCollection)?

我创建了一个 jsfiddle 来试验这个:http://jsfiddle.net/nareshbhatia/357sg/ 。正如您所看到的,对顶级属性的更改会反射(reflect)在输出中,但对位置的任何更改则不会。我将非常感谢有关如何执行此操作的任何提示。

谢谢。

纳雷什

编辑:理想的情况是 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 中是否可以实现类似的操作。

最佳答案

在使用绑定(bind)添加到 Ember 数组对象时,您需要使用 pushObject 而不是 push。访问 positions 属性时,您可能应该使用 get() 。请参阅我的 jsFiddle 进行更正。

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

关于ember.js - 如何在 Ember.js 中创建嵌套模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9186214/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com