Как предотвратить «ложные» обновления привязки ввода (Angular 2+)? - PullRequest
0 голосов
/ 25 ноября 2018

Допустим, у меня есть два компонента.A ParentComponent и ChildComponent.ParentComponent имеет свойство age и двусторонние привязки с ChildComponent.

ParentComponent

import { Component } from "@angular/core"

@Component({
    selector: "app-parent",
    template: "<app-child [(age)]="age"></app-child>"
})
export class ParentComponent {
    age = 25
}

ChildComponent

import { Component, Input, Output, EventEmitter } from "@angular/core"

@Component({
    selector: "app-child",
    template: "<p>{{ age }}</p>"
})
export class ChildComponent {
    @Input()
    age = 0

    @Output()
    ageChange = new EventEmitter()

}

Всякий раз, когда значениеage изменения в ParentComponent, Angular распространяет изменение на ChildComponent.И когда ChildComponent испускает событие ageChange, изменения синхронизируются обратно в ParentComponent.Когда происходит последнее, ParentComponent обнаруживает, что его свойство изменилось, и передает изменения дочернему элементу.Но у ребенка уже есть новое значение!

Это кажется неэффективным.Есть ли способ предотвратить это «ложное» обновление?Я что-то упустил или это как Angular работает?

...