2017-01-12 37 views
0

我有一個字符串變量,它是組件的名稱。我需要將此變量傳遞給另一個對象屬性,但作爲組件對象而不是字符串。Angular 2應用程序組件陣列

那麼,是否有一個全局數組,可以存儲我可以訪問的應用程序的所有組件?像這樣的東西;

let componentName = 'myComponentName'; 
componentsArray[componentName]; 

或者,我可以投入變量來鍵入:Component?

編輯...

我正在創建一個路由配置;

const routes: Routes = [ 
    { 
    path: 'home', 
    component: componentName 
    }, 
    { 
    path: 'services', 
    component: componentName 
    }, 
    { 
    path: '', 
    component: componentName 
    }, 
    { 
    path: '**', 
    component: componentName 
    } 
]; 
+0

據我所知,'app.module'中'@ Component'裝飾器中的'declarations'屬性包含您在應用程序中使用的所有組件。可能你可以看看那 – Vasif

+0

而且,沒有。將字符串轉換爲組件類型將不起作用。 – Vasif

+0

你在用這個數組做什麼?也許我們可以建議一個替代實施。考慮到Angular2的構建方式,你的設計非常不直觀。 –

回答

0

您所描述的數據結構在Angular2中並不常用。我懷疑你希望使用這個數組傳遞你周圍的組件,就像你將數組中的元素存儲在PHP中一樣。

Angular以不同的方式解決了這個問題,它有多種工具來顯示和隱藏組件。如*ngIf指令[hidden](除非你可以解釋爲什麼,否則不要使用該指令),最重要的是,內置在Router。學習這些將會是一筆投資,但一旦擁有了它們,您將從更好的表現中受益。