2017-02-21 48 views
0

我试图在另一个父组件中实现一个错误消息组件。在孩子(错误信息)组件中,它有一个输入属性,父组件将把错误信息传递给子节点。我似乎无法一直监听输入字段的子组件,因为子组件只能呈现一次。任何人都可以给我一些见解,我如何解决这个问题?Angular2:子组件如何始终监听来自父组件的输入onInit

辅元件

export class ErrorMessage implements OnInit { 
    @Input() errorType: string; 

    errorMessage; 
    messages = { 
    apiError: 'There is an error with your request. Please try again.', 
    } 

    ngOnInit() { 
     this.errorMessage = this.messages[this.errorType]; 
    } 
} 

父组件

@Component({ 
    selector: 'parent-component', 
    template: '<error-message *ngIf="errorType" [errorType]="errorType"></error-message>' 
}) 

export class ParentComponent implements OnInit { 
    errorType: string; 

    throwingErrorFn(){ 
     this.errorType = 'apiError'; 
    } 
} 
+0

您可以将'errorType'设置为setter。 –

回答

2

你可以在子组件使用OnChanges

ngOnChanges() { 
    console.log(this.errorType); 
} 

应该捕捉父母做errorType每一个变化。

ngOnChangesngOnInit之前被调用,并且每当有一个或多个数据绑定输入属性发生变化时。

相关问题