2013-09-30 3 views

답변

1

이 같은 것을 사용하는 경우 : 이것처럼

App.ItemsController = Ember.ArrayController.extend({ 
    doSomethingWithTotal: function() {   
     var length = this.get('model.length'); 
     // do something with de length 
    }.observes('model.isFulfilled') 
}); 

: 당신이 데이터를로드 할 때 알아야 할 isFulfilled 속성을 관찰 할 수 있도록

App.ItemsRoute = Ember.Route.extend({ 
    model: function() { 
     return this.store.find('items'); 
    } 
}); 

store.find이하는 Ember.PromiseProxyMixin 인스턴스를 반환합니다 샘플 http://jsfiddle.net/marciojunior/UeCWV/

+0

내 컨트롤러에서 조명기의 길이에 액세스해야합니다. 어떻게 접근합니까? –

+0

죄송합니다. 지금 업데이트 중입니다. :) –

+0

Ok @TimJahn 업데이트되었습니다. –

0

ArrayController에 속성을 요청할 수 있습니다.을 입력하면 length에 액세스 할 수있는 배열이 반환됩니다.

여기에 업데이트 된 바이올린의 :이 작품 http://jsfiddle.net/bYSjD/

App.ItemsController = Ember.ArrayController.extend({ 
    doSomethingWithTotal: function() { 
    return this.get('content.length') 
    }.property('content') 
}); 

방법이 그 App.ItemsRoute입니다. model은 약속 찾기를 반환하여 항목을 찾은 다음 완료되면 ItemsRoute이라는 다른 메서드가 호출됩니다 : setupController.

Ember가 자동으로 setupController을 처리하므로 반환되는 모델 데이터로 컨트롤러가 채워집니다. content 속성이 ItemsController으로 설정되고 속성 값이 doSomethingWithTotal이됩니다.

+0

컨트롤러가 ObjectController를 사용한다면 어떻게 될까요? 그렇다면 작동하지 않는 것 같습니다. –

+0

ObjectController는 객체 배열이 아닌 단일 객체 만 포함합니다. – atsjj