Значение Ngmodel обновляется неправильно? - PullRequest
0 голосов
/ 21 сентября 2018

Я использую сторонний выпадающий и календарный компонент, если я изменяю значение, значение ngmodel обновляется неправильно.Он должен принимать текущее значение, а не старое значение

образец: ngmodel не обновляется

Какобновить текущее значение до ngmodel ..?Пожалуйста, предложите хороший ответ

Воспроизведение процедуры:

1.run образец ссылки

изменить раскрывающееся или календарное значение

3.просмотреть журнал консоли, текущее значение берется с использованием аргумента, но ngmodel показывает старое значение

HTML-файл

<link href="https://cdn.syncfusion.com/ej2/material.css" rel="stylesheet">

<ejs-datepicker id="date" (change)="onChange($event)" [(ngModel)]="ModelDate"> </ejs-datepicker>

<ejs-dropdownlist id='ddlelement' [dataSource]='data' [(ngModel)]='Modelvalue' placeholder='Select a game' (change)="onDropChange($event)"></ejs-dropdownlist>

{{ModelDate}}

ts файл

import { Component } from '@angular/core';

@Component({
  selector: 'my-app',
  templateUrl: './app.component.html',
  styleUrls: [ './app.component.css' ]
})
export class AppComponent  {

  public ModelDate : any ;


  public data: string[] = [ 'Badminton', 'Basketball', 'Cricket', 'Football' ];
    // set a value to pre-select
    public Modelvalue: string = 'Badminton';

  onChange(args){
    // debugger         
      console.log("NgModelvalue:" + this.ModelDate);    
     console.log("Selected value:"  +args.value);
  }
  onDropChange(args){
    debugger
    // args.dataBind();
    console.log("NgModelvalue:" + this.Modelvalue);    
     console.log("Selected value:" +args.value);
  }
}

Ответы [ 4 ]

0 голосов
/ 21 сентября 2018

Для вашего выпадающего списка вы использовали событие change ().вместо изменения используйте ngModelChange ().с помощью ngModelChange ваш ngModel обновится.

<ejs-dropdownlist id='ddlelement' [dataSource]='data' [(ngModel)]='Modelvalue' placeholder='Select a game' (ngModelChange)="onDropChange($event)"></ejs-dropdownlist>
0 голосов
/ 21 сентября 2018

Это ожидаемое поведение, и оно связано с событием изменения.В основном, когда происходит событие изменения, часть события ngModel еще не обновляется.

В основном вам необходимо использовать (ngModelChange) отдельно с [ngModel].

Подробнее здесь: https://github.com/angular/angular/issues/3406

и здесь: Angular 2 change event -изменения модели

0 голосов
/ 21 сентября 2018

Заменить функцию (изменить) на функцию (ngModelChange).Поскольку обновление значения модели занимает немного больше времени, а журнал печатается раньше.

Попробуйте это -

<ejs-dropdownlist id='ddlelement' [dataSource]='data' [(ngModel)]='Modelvalue' placeholder='Select a game' (ngModelChange)="onDropChange($event)"></ejs-dropdownlist>

Он будет печатать данные всякий раз, когда значение модели изменяется.

0 голосов
/ 21 сентября 2018

Что вы использовали до сих пор? Не могли бы вы показать мне код?Я думаю, что привязка свойств или двусторонняя привязка [()] решат ваш прболем

...