2013-11-27 4 views
3

내 모델에 배열 (float)의 배열이 있고 일련 번호가 붙여지고 Rails 백엔드에서 반환됩니다. 그런 다음 필드 (이 예에서는 monthlyData)를 가져 와서 내가 작성한 D3 기반 구성 요소를 사용하여 플로팅합니다.배열 속성 관찰

{{bar-chart dataBinding="monthlyData" height=75 width =300}} 

데이터가 변경된 경우를 제외하고는 모두 정상적으로 작동합니다. 내 구성 요소의 JS에서 구성 요소의 data 특성을 관찰하고 뷰를 다시 렌더링하는 관찰자가 있지만 내 모델이 변경되면이 관찰자가 실행되지 않습니다. 그러나 내가 monthlyData 필드를 직접 설정하면 작동합니다 (예 : 내 컨트롤러에서 this.get('model').set('data', [1,2,3,4,5])을하면됩니다.

나는 시도 두 속성 유형을 지정하지 않는 (즉, 내 모델 monthlyData: DS.attr()을 지정하고 사용자 정의 배열이 반환 Ember.Array은 관찰자 친화적 인)이 될 것이라는 희망으로 (변환 사용에서 :

App.ArrayTransform = DS.Transform.extend({ 
    deserialize: function(serialized) { 
    return Ember.A(serialized); 
    }, 
    serialize: function(deserialized) { 
    return deserialized.toArray(); 
    } 
}); 

Ember 1.3 베타 1과 Ember Data 1.0.0 베타 4를 사용하고 있습니다. 배열을 데이터 형식으로 사용하는 것이 가장 좋은 방법은 무엇이며 어떻게 관찰 가능합니까?

+1

왜 뷰를 다시 렌더링하고 있습니까? 모델이 업데이트되었는지 확인 하시겠습니까? –

+0

업데이트가 더 정확할 것 같습니다. 다시 렌더링하지 않고 새 데이터를 반영하기 위해 차트의 막대 높이를 업데이트하면됩니다. 그 코드는 정상적으로 작동하지만 문제는 위에서 설명한대로 배열의 데이터를 특별히 설정하지 않는 한 관찰자 함수가 실행되지 않는다는 것입니다. – chopper

+0

모델이 어떻게 업데이트됩니까? save()를 사용하고 있습니까? 모델 저장시 귀하의 레일 앱이 API를 통해 관련되어 있습니까? –

답변

관련 문제