내 모델에 배열 (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를 사용하고 있습니다. 배열을 데이터 형식으로 사용하는 것이 가장 좋은 방법은 무엇이며 어떻게 관찰 가능합니까?
왜 뷰를 다시 렌더링하고 있습니까? 모델이 업데이트되었는지 확인 하시겠습니까? –
업데이트가 더 정확할 것 같습니다. 다시 렌더링하지 않고 새 데이터를 반영하기 위해 차트의 막대 높이를 업데이트하면됩니다. 그 코드는 정상적으로 작동하지만 문제는 위에서 설명한대로 배열의 데이터를 특별히 설정하지 않는 한 관찰자 함수가 실행되지 않는다는 것입니다. – chopper
모델이 어떻게 업데이트됩니까? save()를 사용하고 있습니까? 모델 저장시 귀하의 레일 앱이 API를 통해 관련되어 있습니까? –