【发布时间】:2019-11-09 13:05:09
【问题描述】:
我有一个组件A,页面上有自定义指令:
查看:
<warning [details]='details'></warning>
组件:
export class AComponent implements OnInit {
details: ConfirmDetails = {
header_class: ""
};
languageChanged(newLang: string) {
this.currentLanguage = newLang;
this.ngOnInit();
}
ngOnInit() {
if (this.currentLanguage === "English"){
this.details.header_class = "line1 font50";
}
else{
this.details.header_class = "line2 font90";
}
}
一旦调用languageChanged(),指令就不会更新。
export class WarningComponent implements OnInit {
@Input() details: ConfirmDetails;
ngOnInit() {
console.log(this.details.header_class);
}
}
所以在加载details 的第一页输入是“line1 font50”,但是当
languageChanged() 调用它不会改变,所以我没有看到任何控制台输出。
我将不胜感激。
【问题讨论】:
-
ngOnInit 仅在“元素”附加到 DOOM 时执行(如果您有,例如 *ngIf="toogle",则每次切换变为 true)。但变量确实发生了变化。要进行测试,请在您的 alert.html 中添加一些 {{details}},或使用 setter stackoverflow.com/questions/36653678/…
标签: angular angular6 angular7 angular-directive