将值从子组件发送到父组件,让父组件修改并将其传递回子组件

时间:2017-12-01 21:20:43

标签: angular

请在此处查看示例 https://stackblitz.com/edit/angular-dybb4v

<progress></progress>

}

基本上,我希望将一个值发送到父组件,让父母根据需要修改它,然后在子组件中 - 我想使用修改后的值。

我不想添加另一个&#34; emit&#34;在父组件中..有什么方法可以链接值的流量?

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

你可以实施一项服务,作为一个中间人&#34;两者之间。在两个组件中导入服务,当更改服务中的变量时,它将反映在另一个组件中。除了一次之外,无需发出任何内容,并使用OnInit()在父级和子级中进行订阅。

答案 1 :(得分:0)

尝试以下方法:

// Parent component
@Component({
  selector: 'parent-component',
  template: '<child-component (valueChanged)="changeValue($event)" [childValue]="childValue"></childComponent>'
})
export class ParentComponent {
  childValue: 'hello world';

  changeChildValue(newValue){
    this.childValue = newValue;
  };
}

// Child component

@Component({
  selector: 'child-component',
  template: '<div>{{childValue}}</div>'
})
export class ChildComponent {
  @Input() childValue;
  @Output() valueChanged = new EventEmmiter<any>();

  changeValue(newValue) {
    valueChanged.emit(newValue);
  }
}

将父组件中的childValue作为输入传递。

根据您的逻辑,更改子级内的childValue,然后使用新值调用changeValue方法。父组件将接收该事件并更新在子项上自动更新的值