2014-09-26 2 views
1

company은 경로 어딘가에 정의 된 약속이라고 가정합니다. 내 컨트롤러에서 나는 계산 된 속성을 정의 breadcrumb이 약속에 따라 :Ember.js : 약속에 기반한 속성

breadcrumb: function() { 
    return [ 
     ... 
     {name: this.get("company").get("name"), url: "#company/" + this.get("company").get("id")}, 
     ... 
    ] 
}.property("company") 

내 템플릿의 이동 경로는 약속이 해결 후에도 업데이트하지 않습니다.

{{format-breadcrumb breadcrumb}} 

observes도 시도했지만 결과는 같습니다. 내가 원하는 결과를 얻을 수있는 유일한 방법은이 약속에 따라 속성을 만들 수있는 유일한 방법입니다 company

... 
}.property("company.id") 

의 속성을 관찰하는 것입니다? 내가 약속 자체를 관찰하고 싶은, 아니 하나 개의 특정 속성 ...

내가 타다 남은 1.7 엠버 데이터 베타를 사용하고 10

감사

답변

1

내 조언 항상하는 것 관심있는 부동산에 따라 달라집니다.

}.property('company.id', 'company.name') 

브레드 크 러브에 영향을 줄 수있는 사항이므로 걱정하십시오. 약속로드하고 그 특성이 나중에 변경하는 경우, 당신은 이동 경로가 오래된되고 싶어 (피할 수없는 말장난) 할

대안가 (추가로) 약속의 수명주기를 관찰하는 것입니다 속성 :

  • 을 IsLoaded 표시
  • 이 isSettled
,369을 isFulfilled isRejected

그래서 : 위해도 답변

this.get('company').get('name') 
+0

감사합니다, 그리고 :

this.get('company.name') 

이상 :

}.property('company.isFulfilled') 

http://emberjs.com/api/classes/Ember.PromiseProxyMixin.html

이 추가 생각, (내가) 좋아보기 추가 생각! 나는 Ember에게 새로운 사람이고 나는 배울 것이 많다. – Griffosx