以下链接适用于职位,但是当我添加另一个对象(公司)时,它没有显示任何内容。
App.jsonObject = {
id: 1812,
name: 'Brokerage Account',
positions: [
{
symbol: 'AAPL',
quantity: '300',
company:[
{
no: '1',
name: 'test'
}
]
},
{
symbol: 'GOOG',
quantity: '500',
company:[
{
no: '2',
name: 'test123'
}
]
}
]
};
答案 0 :(得分:2)
这不起作用的原因是因为在你的JSON结构中你有简单的javascript对象。要让ember知道更改和绑定工作,您总是需要使用框架的方法,如Ember.Object.create
(就像您已经使用App.account),objectAt(0)
,pushObject()
等。创建您的数据结构。这样,您的绑定和其他所有内容将按预期工作。
简单直接的方法是将代码更改为:
App.account = Ember.Object.create({
id: 1812,
name: 'Brokerage Account',
positions: Ember.A([
Ember.Object.create({
symbol: 'AAPL',
quantity: '300',
company: Ember.A([
Ember.Object.create({
no: '1',
name: 'test'
})
])
}),
Ember.Object.create({
symbol: 'GOOG',
quantity: '500',
company: Ember.A([
Ember.Object.create({
no: '2',
name: 'test123'
})
])
})
])
});
因此,您可以稍后使用框架方法并执行以下操作:
App.get('account').get('positions').pushObject(Ember.Object.create({symbol: 'MSFT', quantity: 200}));
或
App.get('account').get('positions').objectAt(0).setProperties({'quantity': 500});
在这里你的更新小提琴:http://jsfiddle.net/WkGkj/3/
注意,小提琴现在正在工作,但请不要引用我的方法,因为它不是构建ember应用程序的首选ember方式,我只是努力备份我的答案:)另外值得一提的是在你的小提琴你正在使用'ember 0.9.4
which is now very outdated since version
1.0.0-rc.6.1`。
希望它有所帮助。