代码之家  ›  专栏  ›  技术社区  ›  Gargoyle

子属性角度变化通知

  •  0
  • Gargoyle  · 技术社区  · 6 年前

    <app-lab-hazard-classification-question-group
            primaryQuestion="Does the lab contain mechanical tools?"
            [(primaryValue)]="lab.hazardClassificationDetails.mechanicalExists"></app-lab-hazard-classification-question-group>
    

    lab 变量是 @Input() lab.hazardClassificationDetails.mechanicalExists 它是由子组件正确设置的。但我需要知道,在父控件中,该值何时被修改。因为 实验室 变量本身不会改变 ngOnChanges 方法实际上没有被调用。

    我必须加一个吗 (change) 项,并显式绑定该项以通知更改?我希望有一个更通用的方法,因为我有大约10个这样的子元素,我不在乎它变成了什么值,只是它确实改变了。

    @Input() primaryValue: boolean;
    @Output() primaryValueChange = new EventEmitter();
    
    onPrimaryChanged(): void {
        this.primaryValueChange.emit(this.primaryValue);
    }
    

    <select class="form-control" id="primary" name="primary" required
            [(ngModel)]="primaryValue"
            (change)="onPrimaryChanged()">
                <option [ngValue]="null || undefined">-- Select --</option>
                <option [ngValue]="true">Yes</option>
                <option [ngValue]="false">No</option>
            </select>
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   gr4viton    6 年前

    一个好的方法可以是用 EventEmitter 从子组件到父组件,以防值更改。