2015-09-07 19 views
1

我正在爲員工和員工提供多個地址,當添加/編輯員工時,地址位於同一路線/頁面上。Ember在單一路線上擁有多個

在我添加地址按鈕的頁面,被點擊時,它應該添加地址字段的設置

這裏是一些代碼

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

你並不需要通過第二是工作正常參數到'createRecord'。只要'this.store.createRecord('modelName')' –

+0

正如你所建議的,它給了我'未捕獲的錯誤:你必須在調用'yieldItem'時提供一個字符串鍵。您提供了null錯誤 –

+0

模型定義可能有問題。另外,在你的代碼中沒有理由使用const。 –

回答

0

正如@Gennady Dogaev建議,我改變了它。我的問題是與模板

我用

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

我已經改變了,要

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

現在預期