2013-05-01 3 views
1

객체 직렬화 변환 :EmberJS 사용자 정의 ATTR 정의의 배열을 사용하여

Ember.VERSION : 1.0.0-rc.1 
Handlebars.VERSION : 1.0.0-rc.3 
jQuery.VERSION : 1.9.1 

나는 사용자 지정 변환을 사용하여 직렬화 직렬화 ANS있는 사용자 정의 개체의 목록 중심으로 모델을 가지고있다. 그것은 다음과 같습니다 : I 추가하거나 목록에서 항목을 제거,하지만 난을 ListItem의 행을 업데이트 할 때이 더러워이나 그 이전 상태 때 반환하지 않는 경우

그것은 확실히 작동
DS.RESTAdapter.registerTransform('list', { 
    serialize: function(value) { 
    return value.mapProperty('line').join("\n"); 
    }, 
    deserialize: function(value) { 
    return (value || '').split(/\n/). 
     map(function(line) { return App.ListItem.new(line: line); }); 
    } 
}); 
App.ListItem = Ember.Object.extend({ 
    line: '' 
}); 
App.MySuperModel = DS.Model.extend({ 
    list: DS.attr('list'); 
}); 

, 모델은 더러워 트랜잭션을 롤백합니다.

작동 방법에 대한 아이디어가 있습니까? 나는 단순한 목록 일 뿐이며 내 서버에 그대로 유지되는 관계를 사용하지 않을 것입니다.

답변

2

해결 방법은 있지만 여전히 깨끗한 방법을 사용해 주시면 감사하겠습니다.

내가 뭘 잘못했는데 : 원래 줄 배열을 조작하여 줄을 추가하거나 제거했기 때문에 ember가 아무런 변화도 감지하지 못했습니다. (.set ('lines', ...)) 변경된 원래 배열로 롤백되었습니다.

내 모델의 라인 말씀이 내가 지금하고 있어요 및 은 .set 사용 (편리한 .copy() 방법 사용) 라인의 aa는 새로운 배열을하고있다 ('라인', ...)를 값이 변경되었습니다.

(결론 : 문제에 수면, 그들 자신을 해결하는 경향 ^^)

관련 문제