1

進入角和看一個過時的教程,其實是在爲Angular2(Y,我知道)。嵌套組件

Angular4:

@NgModule({ 
    imports: [ BrowserModule ], 
    declarations: [ AppComponent , MyChildComponent ], 
    bootstrap: [ AppComponent ] 
}) 

看來,你這是怎麼巢成分,但現在不是有沒有辦法在角2去做它是怎麼做(或類似)?正如你可以在現在已經廢棄的'directives'屬性中直接導入它(直接在你的ROOT組件中)(發現這對於快速開發來說非常方便)。

Angular2:

@Component({ 
    selector: 'app-root', 
    directives: [MyChildComponent] 
    template: '<div><ChildComponent></ChildComponent></div>' 
}) 
export class AppComponent {} 

編輯:這裏是MyChildComponent聲明(仍然Angular2的一部分):

@Component({ 
    selector: 'ChildComponent', 
    template: '<h2>Child component</h2>' 
}) 
export class MyChildComponent {} 

注:省略進口報關

+0

你將它定義爲'您的組件內部directive'。如何爲指令和組件提供相同的類? – Aravind

+0

不一樣。 MyChildComponent的聲明不在這裏。我會更新它以避免混淆。這不是一個「不能工作」的問題。在角4 –

+0

只是想知道,如果他們有什麼,而不是「指示」其他(存在於角2,現在它不建議使用)的關鍵字更新我的問題 –

回答

0

在某些時候(我很久以前每天都會出現不同版本的錯誤消息),他們轉而採用基於模塊的設計,基本上做到了這一點與過夜的directives

爲了在任何地方使用你的組件,你只需要填入該模塊在你的組件模塊中的declarations: [...]部分。

之後,你根本不需要的組件directives部分。

簡而言之:

  • 在模塊的declarations節中列出的任何組件將這些組件提供給所有其他組件模塊的
  • 在模塊的exports一節中列出的任何組件將使得這些組件可用於該imports該模塊的任何其它模塊。
+0

更好的方式讓他們在那裏。更容易擴展和維護。感謝你的回答 –