私は、テンプレートに2つの他のコンポーネントが含まれている「親」コンポーネントを持っています。何らかの形でどちらかのコンポーネントを表示したり隠したりしたい。私はmultiple component angular.io tutorialを試してみることを試みましたが、何も起こっていません(そして、コンソールエラーは起こっていません)。angle 2子コンポーネントを非表示または表示する
私の「親」コンポーネントそれはテンプレートだとは次のとおりです。
@Component({
selector: 'main-area',
templateUrl: 'main-area.html',
directives: [Child1Component, Child2Component]
})
export class MainComponent {
child1Shown:boolean = true;
child2Shown:boolean = false;
}
メインarea.html -
<div>
<childOne [hidden]="child1Shown"></childOne>
<childTwo [hidden]="child2Shown"></childTwo>
</div>
私の子コンポーネントは、それぞれのテンプレートを持っていますが、ここのコードがどのように見えるかですそれら。 (それはテンプレートだと)に示す
@Component({
selector: 'childTwo',
templateUrl: 'childTwo.html'
})
export class Child2Component {
@Input() hidden:boolean;
}
(それはテンプレートだと)それは
MainComponent
child2のだとページがロードが隠されるべき
とchild1の:
CHILD1:
@Component({
selector:'childOne',
templateUrl: 'childOne.html'
})
export class Child1Component {
@Input() hidden:boolean;
}
CHILD2。しかし、両方が表示されています。私は、MainComponentプロパティを変更するためにMainComponentに(click)=setHidden()
関数を持つボタンを作成しようとしましたが、何も起こりません。コンポーネント間の通信については何が欠けていますか?
あなたがかもしれないデフォルトのプロパティを使用している場合は、私の一部は疑問に思いを知っている親コンポーネントのメタデータに含まれる必要がありません問題ではあるが、私はすぐに正当な理由でそれを却下した。ありがとう! – Justin
一見複雑な質問に簡単な答えがあります。 –
これは私が探していたドロイドではありませんが、知っておく価値があります。 – davaus