我在Angular 2 Style Guide中看到了这个示例。
如果我这样做,我会在this.show();
中致电ngOnInit
,而演示会在activate
中调用它。
activate
和ngOnInit
之间有什么区别?感谢
export class ToastComponent implements OnInit {
// public properties
message: string;
title: string;
// private fields
private defaults = {
title: '',
message: 'May the Force be with You'
};
private toastElement: any;
// public methods
activate(message = this.defaults.message, title = this.defaults.title) {
this.title = title;
this.message = message;
this.show();
}
ngOnInit() {
this.toastElement = document.getElementById('toh-toast');
}
// private methods
private hide() {
this.toastElement.style.opacity = 0;
window.setTimeout(() => this.toastElement.style.zIndex = 0, 400);
}
private show() {
console.log(this.message);
this.toastElement.style.opacity = 1;
this.toastElement.style.zIndex = 9999;
window.setTimeout(() => this.hide(), 2500);
}
}
答案 0 :(得分:2)
ngOnInit()
是一个Angular生命周期方法,在第一次更新输入(第一次ngOnChanges()
之后)后调用。 activate
只是一种自定义方法,而不是由Angular调用。要使用它需要通过自定义代码调用。