gpt4 book ai didi

javascript - 在 Ember 中创建和更新嵌套对象

转载 作者:行者123 更新时间:2023-11-30 05:39:47 25 4
gpt4 key购买 nike

我像这样从服务器获取了嵌套的 JSON 数据:

{
name: "Alice",
profile: {
something: "abc"
}
}

我有以下模型:

App.User = Ember.Object.extend({
name: null,
profile: Ember.Object.extend({
something: null
})
})

如果我简单地执行 App.User.create(attrs)user.setProperties(attrs)profile 对象将被覆盖纯 JS 对象,所以目前我正在这样做:

var profileAttr = attrs.profile;
delete attrs.profile
user.setProperties(attrs); // or user = App.User.create(attrs);
user.get('profile').setProperties(profileAttrs);

它有效,但我在几个地方得到了它,在实际代码中我得到了不止一个嵌套对象,所以我想知道是否可以覆盖 User#createUser#setProperties 方法自动完成。也许有更好的方法?

最佳答案

根据您的评论,您想要模型获得的自动合并行为(您通过 .extend() 获得的那种东西)。在这种情况下,您可以尝试注册一个自定义转换器,例如:

App.ObjectTransform = DS.Transform.extend({
deserialize: function(json){
return Ember.Object.create(json);
}
});
App.User = DS.Model.extend({
profile: DS.attr('object')
});

参见:https://github.com/emberjs/data/blob/master/TRANSITION.md#json-transforms

关于javascript - 在 Ember 中创建和更新嵌套对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21488086/

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