특정 페이지로 이동하면 라우터에서 코드와 함께 사용되는 serializer의 normalizeResponse
함수가 내 모델에 메타 데이터를 추가하기 위해 함수 model
이 제대로 작동합니다. 기본적으로 normalizeResponse
이 먼저 실행되고 라우터에 내 model
이 작동합니다.엠버 normalizeResponse 페이지로 이동했을 때 링크 대상에서
import App from '../app';
import JSONAPISerializer from 'ember-data/serializers/json-api';
App.storeMeta = {};
export default JSONAPISerializer.extend({
normalizeResponse(store, primaryModelClass, payload){
App.storeMeta[primaryModelClass.modelName] = payload.meta;
return this._super(...arguments);
}
});
그리고 내 모델
serializers/application.js
import App from '../app'
...
model(params){
const data = {};
return this.store.findRecord('myModelType', params.id).then((myModelType)=>{
myModelType.meta = App.storeMeta['myModelType'];
return myModelType;
},()=>{ //error
this.get('session').invalidate();
});
}
나는 다른 페이지에서 link-to
을 통해 특정 페이지로 이동
link-to
에서 내비게이션 할 때 model
함수 전에 normalizeResponse
함수를 실행하려면 어떻게해야합니까?
도움이된다면 크게 도움이 될 것입니다.
분명히 이것은 수년간 계속되어 온 문제인 것 같습니다. 해결 방법은 그냥 아약스 호출을하고 상점에 밀어 넣는 것입니까? – user2517182