관찰이 충돌하지 않는 emberjs 구성 요소의 시나리오가 있습니다. 원인을 파악하기 위해 "관찰중인 구성 요소 속성을 설정할 때 구성 요소가 아직 삽입되지 않았습니다."ember js 구성 요소 관찰자가 작동하지 않습니다.
내 질문에 대한 답변은 ember js에서 더 좋은 방법으로 처리 될 수 있습니까?
더 나은 설명은 아래 jsbin`s에서 찾을 수 있습니다.
관찰이 충돌하지 않는 emberjs 구성 요소의 시나리오가 있습니다. 원인을 파악하기 위해 "관찰중인 구성 요소 속성을 설정할 때 구성 요소가 아직 삽입되지 않았습니다."ember js 구성 요소 관찰자가 작동하지 않습니다.
내 질문에 대한 답변은 ember js에서 더 좋은 방법으로 처리 될 수 있습니까?
더 나은 설명은 아래 jsbin`s에서 찾을 수 있습니다.
당신이 바로 초기화 후 실행하는 관찰자를 강제로 .on('init')
를 지정할 수 있습니다; 그렇지 않으면 @ Kingpin2k 같은 언급 - 그들은
App.TextboxDisplayComponent = Ember.Component.extend({
displayText: '',
boundProperty: '',
observeBoundProperty: function() {
this.set('displayText', this.get('boundProperty'));
}.observes('boundProperty').on('init')
});
당신의 (비) 작업 예를 실행하지 않는 here
정확히 당신이 여기 달성하려는 어떤정확히 내가 뭘 원했던가 내가 이것을 시도했을 때 관찰자가 "('init')에 맞았을 것이라고 생각하고 일반적인 변화가 일어날 때 맞지 않을 것이다. 이제 나는 그것을 테스트했고 변경이있을 때조차도 발생합니다. – wallop
그러나 나는 단지이 개념을 이전에 사용하지 않은 이유를 깨달았습니다. boundProperty가 변경되지 않아도 observeBoundProperty가 init에서 실행됩니다. 만약 내가 관찰자가 변화에 대해서만 타격을 받고 싶다면 많은 도움이되지는 않을 것입니다.) 그럼에도 불구하고 나는 그 안에 상태 검사를 할 수 있었고 가장 중요한 것은 훨씬 더 깨끗한 버전이었습니다! – wallop
? 이 시나리오에서 두 관찰자 함수는 (Ember.Computed를 통해) 계산 된 속성으로 더 잘 제공 될 것입니다. – awgreenarrow08
동의, 옵저버는 두 상황 모두에서 과도한 행동입니다. – Kingpin2k
의견에서 언급 한 것처럼 이것이 실제 사례는 아니며 모범 사례였습니다. 실제 유스 케이스는 그것을 단순하게 생각한 거대한 것입니다. 기본적으로 관찰자에는 많은 계산이 있으며 다른 속성에 할당하는 것이 아닙니다. 또한 이라고 말하면 "관찰자 함수 둘 다 더 나은 계산 된 속성으로 제공 될 것입니다" 구성 요소에서 계산 된 속성을 사용하면 작동하지 않을 수 있습니다 왜 관찰자가 작동하지 않는 동일한 이유 때문에 – wallop