2013-07-22 2 views
1

나는 이름과 주소라는 두 가지 속성이 정의 된 엠버 모델을 가지고있다. 서버에서 모델을 얻은 경우 myVar.get('name') 또는 myVar.get('address')을 사용하여 액세스 할 수 있지만 myVar.namemyVar.address이 모두 정의되지 않은 것으로 나타났습니다. 이것들은 무엇입니까? 모델을 다르게 설정하면 그 속성을 통해 내 속성에 액세스 할 수 있습니까?엠버 모델의 이름과 같은 속성은 무엇입니까?

+0

Ember.Object에 액세스 할 때마다 Ember가 실행 루프에서 DOM을 업데이트 할 수 있도록 제공된 getter 및 setter를 사용해야합니다. –

답변

1

get 메서드가 정의 된 값을 반환 할 경우 왜 undefined이 점 표기법으로 표시되는지 설명 할 수 없습니다. 하지만 일반적으로 getset을 일관되게 사용하는 데 도움이됩니다. Ember가 속성, 데이터 바인딩 및 옵서버를 계산했기 때문입니다. 리팩토링은 쉬우 며 unknownProperty 핸들러도 지원합니다. get위한 doc로부터

:

이 방법은 일반적으로 [키 이름] 또는 object.keyName는하지만 그것이 계산 속성과 unknownProperty 핸들러를 모두 지원 객체를 사용하는 것과 유사하다. GET은 속성의 모든 종류에 액세스하기위한 구문을 통합하기 때문에

는, 그러한 반대의 경우도 마찬가지 계산 된 특성을 가진 간단한 속성을 대체하거나, 쉽게 많은 리팩토링을 할 수 있습니다. set위한 doc로부터

:이 방법은 일반적으로 계산 특성에 대한 지원을 제공하는 것을 제외하고, 개체 [키 = 값 또는 object.key = 값을 호출하는 것과 매우 유사

, unknownProperty() 메서드 및 속성 관찰자

+0

Ember 데이터를 사용하고 JSON에서이 모델을 생성/채우는 것이 중요합니까? – Aaron

+0

[DS.Model 상속 Em.Object] (https://github.com/emberjs/data/blob/master/packages/ember-data/lib/system/model/model.js#L26) 따라서 계산 된 속성, 옵저버 등은 DS.Model의 인스턴스에 여전히 존재합니다. Ember Data를 사용할 때는 여전히'get'과'set'을 사용해야합니다. 또한 JSON은 서버에서 데이터를 가져 오는 동안 사용되는 형식이며 실제로 모델 구현과 관련이 없습니다. – veidt

+0

그래서 내 속성에 대해 점 표기법을 사용할 수없는 몇 가지 예외가 있지만 작동 여부에 관계없이'get' 및'set'을 사용해야하므로 거의 중요하지 않습니다. – Aaron

관련 문제