听起来像一个足够简单的事情,现在正在导致我各种悲伤。Ember.js(2.5.0)如何设置嵌套的对象值
我有一个简单server
模型,有几个嵌套的对象,
export default DS.Model.extend({
type: DS.attr('string'),
attributes: DS.attr(),
tasks: DS.attr()
});
我可以使用创建路由的新纪录
export default Ember.Route.extend({
model() {
return this.store.createRecord('server');
},
actions: {
create(server) {
server.save().then(() => this.transitionTo('servers'));
}
}
});
,并在相关.hbs我例如,使用value=model.attributes.name
设置属性和任务的一些属性。
这一切工作正常。然而,我想在create
期间从路线中添加更多属性,例如默认值。
使用server.set('attributes.size', 'large');
不起作用,因为Ember不知道尺寸,因为它是一个新的记录。
我可以使用setProperties方法但这似乎消灭所有其他价值
server.setProperties({
attributes: {
size: "large"
},
tasks: {
create: true
}
});
size
现在的设置是否正确,但名称现在是零,因为我没有在setProperties方法指定它...
有关这方面的正确方法是什么?当然,我不需要绘制setProperties中的所有属性?这看起来很浪费,很容易出错。
我想过的东西应该属性只是它自己的模型,并与服务器有关系?尽管这通常是1对1和1对1的关系?