我正在使用员工,员工可以拥有多个地址。添加/编辑员工时,地址位于同一路线/页面上。
在页面上我有“添加地址”按钮,当点击它时,它应该添加地址字段'设置
这是一些代码
addAddress: function () {
const addressNew = this.store.createRecord('employee/address', {});
////addressNew.set('id', 999);
const employee = this.controller.get('model');
employee.get('address').pushObject(addressNew);
},
当我按添加地址按钮时,它会给我错误
Uncaught Error: You must provide a string key when calling `yieldItem`; you provided null
当我取消注释ID行时,它会添加一个地址,但是当我点击第二次时它会给我重复的ID消息。
在单页上处理hasMany关系的正确方法应该是什么
模型
// employee
import DS from 'ember-data';
export default DS.Model.extend({
username: DS.attr('string'),
password: DS.attr('string'),
fname: DS.attr('string'),
lname: DS.attr('string'),
email: DS.attr('string'),
department: DS.attr('string'),
hire_date: DS.attr('date'),
status: DS.attr('boolean'),
gmail: DS.attr('string'),
timezone: DS.attr('string'),
address: DS.hasMany('employee/address')
});
// employee/address
import DS from 'ember-data';
export default DS.Model.extend({
address_1: DS.attr('string'),
address_2: DS.attr('string'),
phone: DS.attr('string'),
cell: DS.attr('string'),
city: DS.attr('string'),
state: DS.attr('string'),
country: DS.attr('string'),
default_address: DS.attr('boolean'),
employee_id: DS.belongsTo('employee')
});
我正在使用
DEBUG: Ember : 1.13.7
DEBUG: Ember Data : 1.13.8
DEBUG: jQuery : 2.1.4
DEBUG: Ember Simple Auth : 0.8.0
修改
我认为这与我的模板有关,它不允许我添加并给我错误我正在使用
{{#each model.address key="id" as |address|}}
循环,所以它没有ID,它给出了产量错误。我改变了key="@guid"
并且它有效。我也需要一个唯一索引,而@guid
或@index
无效...
答案 0 :(得分:0)
正如@Gennady Dogaev所说,我改变了它。我的问题是模板
我正在使用
{{#each model.address key="id" as |address|}}
我已将其更改为
{{#each model.address as |address index|}}
现在它按预期工作正常