typescript - Angular 4 sätt fokus i den dynamiskt genererade textboxen med hjälp av viewChildran


Jag har den dynamiskt genererade textrutan som nedan.

<tr *ngFor="let item of data; let in=index">
    <td>
                        <input #unitNumber type="text" name="workPerformed-workcode-{{in}}" [(ngModel)] = "item.unitnumber" >
                      </td>
<td> <!-- Search option is given to chose the unit number----></td>
</tr>

Här ges sökalternativet för att välja enhetsnummer, om det har valts kommer motsvarande textruta att fokuseras med hjälp av viewChildran.

Mitt försök är

@ViewChildren('unitNumber') enteredUnitNumbers;

// for searching, I have used the material dialog box
const dialogRef = this.dialog.open(SearchEquipmentComponent, dialogConfig);

    dialogRef.afterClosed().subscribe(
      <!-- HERE I NEED TO DO THE FOCUS ON PARTICULAR TEXTBOX ---->
     // console.log(this.enteredUnitNumbers.toArray().map(x => x))
});

Ovanstående console.log visar undefined. Mitt behov är att när dialogrutan stängs ska motsvarande textruta för enhetsnummer få fokus.

Var vänlig ge lösningar

Svar #1

Följande borde räcka:

enteredUnitNumbers.toArray()[0].nativeElement.focus();

Ersätt 0 med indexet för den önskade inmatningen.