在Angular中,双向数据绑定是通过使用ngModel指令来实现的。当在父组件中改变绑定的属性时,子组件也会相应地更新。
以下是一个包含代码示例的解决方法:
父组件(parent.component.ts):
import { Component } from '@angular/core';
@Component({
selector: 'app-parent',
template: `
Parent Component
`
})
export class ParentComponent {
name: string = "";
}
子组件(child.component.ts):
import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';
@Component({
selector: 'app-child',
template: `
Child Component
Parent's name: {{ name }}
`
})
export class ChildComponent implements OnChanges {
@Input() name: string = "";
ngOnChanges(changes: SimpleChanges) {
if (changes.name) {
console.log('Name changed in parent component:', changes.name.currentValue);
}
}
}
在父组件中,我们使用ngModel指令将输入框的值与name属性进行双向绑定。然后,将name属性传递给子组件。
在子组件中,我们使用@Input装饰器来接收来自父组件的name属性。同时,我们实现了OnChanges接口的ngOnChanges方法,该方法会在父组件中的属性发生变化时被调用。在这个方法中,我们可以监测到父组件中name属性的变化,并在控制台中打印出新的值。
这样,当在父组件中改变输入框的值时,子组件会自动更新,并且在控制台中输出新的值。