2016-11-02 6 views
-2

나는 엠버 애플 리케이션에서 모든 컨트롤러를 찾는 방법을 찾고있다. ember 1.6을 사용하고 있습니다. 나는 주어진 이름으로 하나의 컨트롤러 지느러미하는 방법을 알고 :ember에 모든 컨트롤러를 나열하는 방법은 무엇입니까?

var myController = window.App.__container__.lookup('controller:myController ');

모든 컨트롤러를 나열하는 방법이 있나요?

+2

왜 이것을 요구합니까? 이것에 대한 유스 케이스를 공유하면 좋을 것입니다. 그건 그렇고 당신은 특정 컨트롤러에 대해 시도 할 수 있습니다 -'Ember.getOwner (this) .lookup ('controller : myController')'- getOwner 지원과 호환되는 버전에 대해 모르겠다 – kumkanillam

+0

@kumkanillam'getOwner'는 Ember 2.3과 함께 제공됩니다. [참고] (http://emberjs.com/deprecations/v2.x/#toc_injected-container-access). 그러나 같은 질문 : "왜 이것을 요구합니까?" – ykaragol

+0

Ember 자체에는 공개 API가 없습니다. 어쩌면 당신은 당신의 빌드 툴이나 로더를 사용할 수 있습니까? – Lux

답변

0

해결책을 찾았습니다. 다음은 모든 컨트롤러를 반환하는 함수입니다.

function getAllControllers(){ 
    var controllers = []; 
    for (var prop in window.App.__container__.cache.dict){ 
     if (prop.indexOf('controller') > -1){ 
      console.log(prop); 
      controllers.push(SDC.__container__.lookup(prop)); 
     } 
    } 
    return controllers; 
} 
관련 문제