Error类型在从另一个Alert.showAlert("success","someMsg");
调用Component
时不显示,但在Error类型本身的声明中初始化时它正在工作。
组成部分:
import {Component} from 'angular2/core';
@Component({
selector: 'alert-component',
templateUrl: 'app/alert.template.html'
})
export class Alert {
public static errorType:string;
public static messageAlrt:string;
public static showAlert(type:string, message:string): void{
Alert.errorType=type;
}
}
模板:
<div id="messageAlert" >
<strong>{{errorType}}:</strong> this is the error message at top of the page
</div>
非常感谢您在解决errorType值未绑定到errorType这一问题时提供的帮助
最佳答案
这是因为你使用静态字段。当使用{{errorType}}
时,使用组件的非静态属性。
我会这样重构你的组件:
import {Component} from 'angular2/core';
@Component({
selector: 'alert-component',
templateUrl: 'app/alert.template.html'
})
export class Alert {
public errorType:string;
public messageAlrt:string;
}
当您想显示警报时,我会动态添加它:
@Component({
(...)
template: `<div #target></div>`
})
export class SomeComponent {
@ViewChild('target', {read: ViewContainerRef}) target;
showAlert(type:string, message:string) {
this.resolver.resolveComponent(Alert).then(
(factory:ComponentFactory<any>) => {
this.cmpRef = this.target.createComponent(factory);
this.cmpRef.type = type;
}
);
}
看看这位伟大的葛恩特的回答:
Angular 2 dynamic tabs with user-click chosen components