Angular - Удаление двухсторонней привязки на NgModel? - PullRequest
0 голосов
/ 26 марта 2020

как мне удалить двустороннюю привязку с помощью [(ngModel)] в angular?

Мне нужен отдельный обработчик для установки значения, а другой - для его изменения. Таким образом, у меня могут быть побочные эффекты

, например,

 <input [(ngModel)]="selectedEscrowOffering" [ngbTypeahead]="search" [resultFormatter]="escrowFormatter">

в Vue, модели считались синтати c сахар.

Могу ли я отделить два пути в директиву и onChangeHandler?

 <input [value]="selectedEscrowOffering" (change)="someFunctionName($event)" [ngbTypeahead]="search" [resultFormatter]="escrowFormatter">

Ответы [ 2 ]

0 голосов
/ 27 марта 2020

Относительно другого ответа KLTR, вот как я заставил его работать:

Эта модель двустороннего связывания:

<input [(ngModel)]="selectedEscrowOffering" 

может быть разбита на следующее:

<input [ngModel]="selectedEscrowOffering" (ngModelChange)="onChangeEscrowDropdown($event)>

На стороне машинописного текста добавьте функцию, которая его устанавливает. У меня было это на typeahead, и он искал элементы в массиве объектов, чтобы соответствовать ему

onChangeEscrowDropdown($event){

  if(typeof $event ==="object"){
    this.selectedEscrowOffering = $event
  }
}
0 голосов
/ 26 марта 2020

Это очень похоже на vue, вы разделяете @Output и @Input следующим образом:
<input (ngModelChange)="someFunctionName($event)" [ngModel]="mymodel">

...