양식을 내 백본/마리오넷 앱에 제출 한 후 기존 모델을 저장하는 데 문제가 있습니다.양식 데이터에서 모델 특성이 삭제되었습니다.
그래서 양식을 제출하고 backbone.syphon을 사용하여 양식 데이터 표현을 만듭니다. 내가 구축 목적은 다음과 같습니다
{languages: {
{
de_DE: {
default: false
enabled: true
},
en_US: {
...
}
...
}
}
나는이처럼 보이는 그 속성을 백본 모델에 저장하기 위해 노력하고있어 :
attributes: {
id: "5"
languages: {
de_DE: {
default: false,
label: "German"
language: "de_DE"
selected: false
},
en_CA: {
...
},
...
}
}
문제는 그 나는 기존의 모델을 저장할 때 내 데이터에 위 데이터 구조를 사용하여 model.save(data)
을 사용하면 기본 및 레이블 인스턴스가 내 모델에서 완전히 제거됩니다. 심지어 서버에 전송되지도 않습니다. 그들은 previousAttrs
개체에 앉아 있지만 완벽하게 제거되었습니다.
내 모델의 동기화 설정의 예를 그렇게 보이는 : 내가 잘못 뭐하는 거지
sync: function(method, model, options){
var baseUrl = window.location.origin+'/qp-api/v1/master-app/';
var config = {}
switch(method){
case "create":
break;
case "read":
config = _.extend(config, {
method: "GET",
url: baseUrl+this.id+'/languages'
});
break;
case "update":
config =_.extend({
method: "PUT",
url: baseUrl+this.id+'/languages'
});
break;
case "delete":
break;
};
options = _.extend(options, config);
return Backbone.Model.prototype.sync.call(this, method, model, options);
},
? 백본의 저장 기능은 변경된 attrs 만 업데이트 할 것이라고 생각했습니다. 내 데이터 객체가 내 모델 attrs의 설정에 매핑되어야하는 것처럼 보입니다. 그들은 단지 갱신하면 안된다. 기존 모델의 저장 방법에 대해 이해하지 못했습니까?
'model.save()'를 사용하고 있습니까? –
Yessir. 그래서 내 모델의 이름은 언어이고 나는 다음과 같은 코드를 작성합니다 : 'if (languages.save (data) {' '....' }}' –