Показать сообщение отдельно
  #9 (permalink)  
Старый 20.07.2018, 09:49
Аспирант
Отправить личное сообщение для CrazyBite Посмотреть профиль Найти все сообщения от CrazyBite
 
Регистрация: 18.07.2013
Сообщений: 43

destus,
получается previousValue это глобальная, и она будет меняться в зависимости от того на кого ты фокусишься.
Если мы допустим поменяем значение и не засабмитим его, при этом сменим фокус на другой инпут, мы потеряем previousValue прошлого инпута.

Смотрите у меня такая вот бредятина получается:

<ng-template pTemplate="body" let-rowData let-columns="columns">
    <tr [style.background-color]="(rowData.hasOwnProperty('color')) ? rowData['color'] : 'white'">
      <td *ngFor="let col of databaseStructure.columns">
        <span *ngIf="!editable">{{rowData[col.field]}}</span>
        <input type="text"
               [(ngModel)]="rowData[col.field]"
               *ngIf="editable"
               class="editInput"
               (keypress)="setValue($event,rowData['id'],col.field,rowData[col.field])"
               (focus)="previousValue=rowData[col.field]"
        >
      </td>
    </tr>
  </ng-template>

Ели editable, то я показываю инпуты. В них инфа если меняется и сабмитится то я проверяю ее на сервере и в зависимости от валидности или применяю ее на клиентской части или возвращаю на предыдущее значение. Так же если мы не поменяли и не засабмитили то тоже надо вернуть на предыдущее значение.
Ответить с цитированием