Как вставить данные буфера обмена в ячейки таблицы, используя jquery? - PullRequest
1 голос
/ 25 февраля 2020

Я столкнулся с проблемой при копировании данных буфера обмена в строки таблицы.

здесь мой html код таблицы:

<table mat-table [dataSource]="dataSource">

        <tr mat-header-row *cdkHeaderRowDef="displayedColumns" ></tr>
        <tr mat-row *cdkRowDef="let row; columns: displayedColumns;"></tr>
        <ng-container *ngFor="let disCol of displayedColumns; let colIndex = index" [cdkColumnDef]="disCol">
            <div *ngIf="disCol != 'addrow'">
                <th mat-header-cell *cdkHeaderCellDef style="background-color: rgb(198, 182, 255);">{{disCol}}</th>
                <td mat-cell *cdkCellDef="let element "> 
                    <div *ngIf="disCol != 'ACTION' ">
                      **<input id="paste-me" (keyup.enter)="onEnter()"** [formControl]="element.get([disCol])">
                    </div>
                    <div *ngIf="disCol == 'ACTION' ">
                    <mat-select [formControl]="element.get([disCol])">
                      <mat-option [value]="active" *ngFor="let active of activeList">
                        {{ active }}
                      </mat-option>
                    </mat-select>
                    </div>
                </td>
               </div>

               <div *ngIf="disCol == 'addrow'">
                <th mat-header-cell *cdkHeaderCellDef style="background-color: rgb(198, 182, 255);"></th>
           <div *ngIf="dynamicRows.length > 0 ? true : false">  
          <td mat-cell  *cdkCellDef="let element; let i = index;"> 
            <input [(ngModel)]="inputValue" placeholder="No.of Rows" *ngIf="i > dynamicRows.length - 1 ? true : false" (keyup.enter)="addnewRow()"/>
          </td>
           </div>
       <div *ngIf="dynamicRows.length === 0 ? true : false">
          <td mat-cell *cdkCellDef="let element;" >
            <input [(ngModel)]="inputValue"  placeholder="No.of Rows" *ngIf="dynamicRows.length === 0 ? true : false" (keyup.enter)="addnewRow()"/>
          </td>
         </div>
               </div>
        </ng-container>
     </table>

код файла компонента ts:

onEnter() {
    console.log('Entered');
    $('#paste-me').each(function() {
      let searchQuery = $('#paste-me').val();
      console.log('Seacrh suggestion satrting with - ' + searchQuery);
      event.stopPropagation();
      searchQuery = searchQuery.split('\t');
      var x1 = new Array();
      x1 = searchQuery.toString().split(',');
      console.log('x'+x1.length);
      console.log('x1:::'+x1);
      for(let j=0;j<x1.length;j++) {
        console.log('j value::'+x1[j]);
        $('#paste-me').filter(':input').each(function(j,item){
          $(item).val(x1[j] || '');
          console.log('x value:::'+x1[j]);
        });
      }

при копировании копируется только одно значение строки. остальные значения не копируются. но при вызове функции jquery все скопированные данные отображаются. Я не могу перебрать все строки. Как решить? Не могли бы вы помочь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...