2014-05-20 4 views
7

안녕하세요 엠버 데이터 월드Ember 데이터 : 무시 Save 메서드

저장 방법을 재정의하는 방법을 알아 내려고 맞춤식 어댑터를 연구했습니다.

model.save() 

을 : 내가 사용 내 모델 객체에 저장 조작을 호출하려고 시도 할 때,

DS.RESTAdapter.extend({ 
    save: function() { return this._super();} 
}) 

을하지만 :이 같은 것을 할 필요가처럼 내 이해에서

, 그것은 보인다 스토어가 직접 호출되며 내 어댑터 사용자 정의 코드는 호출되지 않습니다.

누구든지 전에 이것을 시도한 적이 있습니까?

는 사실은 기록하지 어댑터에 정의 된 동일한 어댑터

findQuery: function(store, type, query) { 
     //debugger; 
     console.log("findQuery: Custom adapter called!"); 

      return this.ajax(this.buildURL(type.typeKey), 'GET', { data: query }); 
} 

답변

9

save에 다음 코드를 사용하여 찾기 메서드를 호출 할 수 있어요. 재정의 할 생각이 있다면 모델 정의에서 그렇게 할 것입니다. 당신은 세 가지 방법 중 하나를, createRecord, updateRecord를 업데이트해야 할 것이 무엇 저장 결국 어댑터에 호출을 무시 느낌 경우 deleteRecord 지금

App.Color = DS.Model.extend({ 
    color: DS.attr(), 

    save: function(){ 
     alert('save'); 
    } 
}); 

http://emberjs.jsbin.com/OxIDiVU/497/edit

: 여기

은의 예 . 그들은 save가 호출 될 때 각각 무엇을해야하는지에 대해 꽤 자명하다. 위했던 같은 그런 패턴을 따를 것입니다 : 차이를 설명하기위한

App.ApplicationAdapter= DS.RESTAdapter.extend({ 
    updateRecord: function(){ 
    alert('update record'); 
    } 
}); 

http://emberjs.jsbin.com/OxIDiVU/498/edit

+0

감사합니다! – joker1979