Ember.js(2.5.0)如何设置嵌套对象值
Ember.js (2.5.0) how to set nested object value
听起来很简单,但却给我带来了各种悲伤。
我有一个简单的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
现在已正确设置,但名称现在为null,因为我没有在setProperties中指定它。。。
做这件事的正确方法是什么?我当然不需要映射setProperties中的所有属性吗?这看起来很浪费,而且很容易出错。
我想的是,属性应该只是它自己的模型,并与服务器有关系吗?即使这总是一对一和一对一的关系?
在这种情况下,我建议使用ember-data-model-fragments
插件作为解决方案。
https://github.com/lytics/ember-data-model-fragments
使用单独的属性模型并设置1对1关系的其他选项。两者都是belongsTo
,但这也取决于您的数据库和API,因此您必须调整后端系统以与此新结构相匹配。
相关文章:
- 设置嵌套对象属性的更好方法
- Ember.js(2.5.0)如何设置嵌套对象值
- 如何将嵌套设置超时转换为承诺
- 设置'dependensOn'用于keystoneJS中的嵌套字段
- 在javascript/angular中创建播放列表(按值复制数组,但按引用设置嵌套对象)
- AngularJS - 嵌套的ng-重复选择/选项,获取/设置所选值
- 具有完整时间设置的嵌套 JQuery 动画
- 我可以设置这个吗'某事'在该服务中动态创建的嵌套对象中的服务?(可能是范围问题)
- 角度嵌套表单验证setPristine on subForm->在parentForm上设置Pristine
- 聚合物:如何为具有嵌套特性的图纸选项卡设置默认值
- 将焦点设置为嵌套iframe中的文本框
- 为局部嵌套函数中的全局变量设置值
- 设置嵌套对象值
- 设置复杂嵌套对象的格式
- 为具有未定义值的嵌套对象设置默认值的最简单方法
- 动态设置嵌套对象的属性
- rChartsCalendar:通过编程设置嵌套的json属性来配置日历图表
- 设置嵌套循环值返回错误“”;e.replace不是一个函数;
- 在单行中动态设置嵌套对象
- JavaScript:通过ID设置嵌套对象值