2016-11-02 32 views
-2

我正在尋找如何找到所有控制器在燼應用程序。我正在使用燼1.6。 我知道如何在前,名在翅片一個控制器:如何列出所有控制器中的燼?

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; 
} 
相關問題