Ember在一条路线上有很多

时间:2015-09-07 08:00:32

标签: ember.js ember-data ember-cli

我正在使用员工,员工可以拥有多个地址。添加/编辑员工时,地址位于同一路线/页面上。

在页面上我有“添加地址”按钮,当点击它时,它应该添加地址字段'设置

这是一些代码

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无效...

1 个答案:

答案 0 :(得分:0)

正如@Gennady Dogaev所说,我改变了它。我的问题是模板

我正在使用

{{#each model.address key="id" as |address|}}

我已将其更改为

{{#each model.address as |address index|}}

现在它按预期工作正常