コンポーネント継承を使用する際に特別なことはありますか?角2 - コンポーネント継承 - ベーステンプレートに伝播されない基本クラス
編集:これは、継承に関係なく、親/子ビュー/コンポーネント通信
私は、基本クラステンプレートで定義されたdiv要素を隠そうとして、それは、ページ内の変数を
を動作しません。それは
第一のコードに変更してしまった場合でも、でも、更新されていない、私は[隠さ]で試してみましたし、その後* ngIf
私はchangeDetectorRefを使用してみましたが、それは
を何もしませんその値は、テンプレート
基底クラスに伝播されていないようだ。
@Component({
selector: 'my-content',
templateUrl: './content.component.html',
styleUrls: ['./content.component.css'],
})
export class ContentComponent implements OnInit {
protected overlayVisible:boolean;
constructor(....){...}
ngOnInit() {
}
showOverlay()
{
this.overlayVisible=true; <<<<<<<<<<<<<< THESE GET CALLED
}
hideOverlay()
{
this.overlayVisible=false; <<<<<<<<<<<<<< THESE GET CALLED
}
}
ベーステンプレート(content.component.html):
<div>
<div class="contentMainDiv">
<div class="contentBodyDiv"><ng-content select="[body]"></ng-content></div>
<div [innerHTML]=" overlayVisible?'true':'false' "></div> /// DEBUG DIV
<div [hidden]="!overlayVisible" class="contentOverlay" >
<my-wait></my-wait>
</div>
</div>
</div>
子コンポーネント:
export class CustomersComponent extends ContentComponent implements OnInit {
private customers: any;
constructor(
private customersService: CustomersService,
injector:Injector
) { super(injector); }
getCustomers() {
this.showOverlay();
this.customersService.getCustomers().subscribe((customers: any) => {
this.customers = customers;
this.hideOverlay();
});
}
子テンプレート:
<my-content>
<div body>
<div *ngIf="customers">
some table ...
</div>
</div>
</my-content>
私は
を何をしないのです、我々はコンポーネントの継承を使用するときに実行するために特別な何かがあるのでしょうか?
ありがとう
NOP、私はplunkerを作っ継承 – phil1234
について話していますhttps://embed.plnkr.co/?show=preview&show=app %2Fapp.component.ts基本クラスの関数が呼び出されましたが、テンプレートは更新されません – phil1234
wronk url、ここにあります:https://plnkr.co/edit/0FDKGzZZcrUnr2lI2iMi?p=preview – phil1234