Допустим, у меня есть компонентngModel в пользовательских компонентов работы только одним способом
const DEFAULT_VALUE_ACCESSOR = CONST_EXPR(new Provider(
NG_VALUE_ACCESSOR, {useExisting: forwardRef(() => MyComp), multi: true}));
@Component({
selector: 'my-comp',
template: `
<another-one></another-one>
`,
providers: [DEFAULT_VALUE_ACCESSOR]
и теперь, когда я использую компонент, как:
@Component({
selector: 'app',
template: `<my-comp [(ngModel)]="someValue"></my-comp>
<input [(ngModel)]="someValue" />`
})
class App {
someValue: number = 5
}
Значение передается в <my-comp>
компонента, однако после этого, когда значение изменяется внутри входа, обновляется ngModel
, но не <my-comp>
. Есть ли что-то еще, что мне нужно настроить?
нормально, но до сих пор, когда ngModel изменен с входа, который уведомит меня в о том, что значение изменено? Я хочу использовать ngModel, а не someField –
Bryant11
'[(ngModel)] =" someValue "' изменяет 'someValue' в' App'. Угловое обнаружение изменений передает новое значение 'someField' в' MyComp' из-за '[someField] =" someValue "'. Каждый раз, когда 'someValue' изменяется, Angular updates' someField' и каждый раз, когда 'someField' изменяется на Angular, вызывается' ngOnChanges (...) '. –