2016-08-13 2 views
0

에 전달 된 객체의 고객을위한 '아이디'를 포함해야 얻은 다음 RESP의 API 데이터, 고객을위한 모델을 만든엠버 당신은 내가 타다 남은 2.7.0.I를 사용하고 '푸시'

{ 
"accounts": [ 
{ 
    "id": "57a3660793d4ba3a5b78a780", 
    "status": null, 
    "crid": "Someone", 
    "deleted": false, 
    "accountInfo": { 
    "iccid": "accountId", 
    "iccidValue": "accountValue" 
    }, 
    "subscriptionInfo": null 
}, 
{ 
    "id": "57a3660793d4ba3a5b78a780", 
    "status": null, 
    "crid": "Someone", 
    "deleted": false, 
    "accountInfo": { 
    "iccid": "accountId", 
    "iccidValue": "accountValue" 
    }, 
    "subscriptionInfo": null 
} 
], 
"user": { 
"id": "288607702394", 
"isdn": "491622897075", 
"pcc": null 
} 
} 

하는

Customer.js (모델)

export default DS.Model.extend({ 
    device:DS.hasMany('device'), 
    user:DS.belongsTo('user') 
}); 

accounts.js (모델) : 모든 계정, 사용자 등의 세부 사항을 포함

status: DS.attr(), 
id: DS.attr(), 
status: DS.attr(), 
crid: DS.attr(), 
deleted: DS.attr(), 
accountInfo: DS.attr(), 
subscriptionInfo: DS.attr() 

의 user.js 모든 상기 3 모델 (모델)

export default DS.Model.extend({ 
isdn: DS.attr(), 
pcc: DS.attr() 
}); 

만들어진 직렬

Customer.js

export default ApplicationSerializer.extend({ 
normalizeResponse(store, primaryModelClass, payload, id, requestType){ 
console.log("Entered normalizeResponse",payload); 
return this._super(...arguments) 
} 
}); 

데브 ice.js

export default ApplicationSerializer.extend({ 
    primaryKey: 'id' 
}); 

의 user.js

export default ApplicationSerializer.extend({ 
primaryKey: 'id' 
}); 

문제 내가 크롬 콘솔에서 다음 문제를 얻고 응용 프로그램을 실행하는 동안입니다 : 어설 션 실패 : 당신은 'ID'를 포함해야 'push'에 전달 된 객체의 고객

고객 모델에 'id'를 할당하는 방법을 모르겠다. 실제로 사용자 모델 ID를 사용자 정의로 지정하고 싶습니다. 그 모델은 가능한가? 어떻게 고객 모델 serializer에서 그것을 얻을 수 있습니까? 고객 serializer의 normalizeResponse에서 내 응답을 볼 수 있습니다.

참고 : 나머지 응답을 수정할 수 없습니다. 옵션에는 엠버 데이터 모델이 수정되어 남아 있습니다.

방법 내가 REST API는 내 컨트롤러에 GET 호출 오전 그것은 항상 오류 응답을 입력

var customer = this.store.findRecord('customer', this.get('customerID')).then((customer) => { 
    console.log("customer::",customer); 
    },(resp,status) => { 
    console.log("resp:status:",resp,status); 
    }); 

입니다.

도움이 필요합니다.

+0

고객이 언급 한 페이로드의 고객 부분은 어디에 있습니까? –

+0

@EbrahimPasbani 우리는 페이로드에 고객 파트가 없지만 사용자 개체 사용자 ID가 기본 키가 가능한 고객 개체로 전체 콘텐츠를 저장하려고합니다. 미안 해요 내가 완전히 틀린 경우에 엠버에게 완전히 새로운 것입니다. 제가 틀렸다면 – VelNaga

+0

@EbrahimPasbani이 json에게 어떤 종류의 엠버 모델을 제안할까요? – VelNaga

답변

0

데이터를 저장하는 위치와 사용중인 API의 유형을 모르지만 PHP 또는 루프백 API를 사용하여 내 경험에 따르면 null 일 수있는 id 변수를 설정했습니다. 데이터베이스 측에서는 mySQL을 사용했고 id 필드를 자동 증가로 설정했습니다. Ember는 ID를 이미 알고 있으며 사용자가 ID를 수정하거나 만들 수 없도록합니다.