【发布时间】:2013-08-02 12:13:06
【问题描述】:
来自后端的数据具有以下(嵌入)字段(属于“联系人”对象)(json):
"phone_numbers" : [ ["mobile", "43534545354"], ["home", "4356346"] ]
该格式只是电话号码元素的简单列表,然后是两个元素列表,具有以下两个字段:
- 字符串:电话类型
- 字符串:电话号码
我想在我的 ember 应用程序中提供以下可能性:
- 删除电话号码
- 添加电话号码,指定电话类型(从下拉列表中选择)和电话号码
- 删除所有电话号码
如何使用 ember 对象表示phone_numbers,以便轻松实现这两个动作?
我已经开始使用DS.attr('raw'),但我想我必须实现很多通用功能(例如:从数组中提取电话、提取电话类型、提取电话号码……)。有更好的方法吗?这是我目前的看法:
App.Contact = DS.Model.extend({
title : DS.attr('string'),
first_name : DS.attr('string'),
surname1 : DS.attr('string'),
surname2 : DS.attr('string'),
phone_numbers : DS.attr('raw'),
});
编辑
按照here的解释,我开始定义一个自定义变换:
DS.RESTAdapter.registerTransform('phoneNumber', {
serialize: function(value) {
return [value.get('type'), value.get('number')];
},
deserialize: function(value) {
return Ember.create({ type: value[0], number: value[1] });
}
});
App.PhoneNumber = DS.Model.extend({
position: DS.attr('phoneNumber')
});
我的问题是我不知道如何使用这个新的phoneNumber 类型来定义phone_numbers 的列表:
App.Contact = DS.Model.extend({
...
phone_numbers : list of App.PhoneNumber ???
});
【问题讨论】:
标签: ember.js ember-data