Angular 添加行时来自Priming p-datatable的事件
我有一个Angular 添加行时来自Priming p-datatable的事件,angular,datatable,primeng,Angular,Datatable,Primeng,我有一个p-datatable绑定到条目列表。我想把焦点放在新创建的、动态创建的行上;特别是在新行的输入上。但是怎么做呢 每当我向绑定的条目列表动态添加条目时,就会添加一个新的datatable行。很好。但我需要知道这是什么时候发生的,我需要访问新行以便设置焦点。我一直在寻找某种类型的onRowAdded事件,但是p-datatable似乎没有。如何避开这个问题 <p-dataTable [value]="entries"> . . . <p-column>
p-datatable
绑定到条目列表。我想把焦点放在新创建的、动态创建的行上;特别是在新行的输入上。但是怎么做呢
每当我向绑定的条目列表动态添加条目时,就会添加一个新的datatable行。很好。但我需要知道这是什么时候发生的,我需要访问新行以便设置焦点。我一直在寻找某种类型的onRowAdded
事件,但是p-datatable
似乎没有。如何避开这个问题
<p-dataTable [value]="entries">
. . .
<p-column>
<ng-template let-item="rowData" pTemplate="body">
<input type="time" [value]="item.StartTime"/>
. . .
. . .
. . .
好的,所以我找到了一个独立于p-datatable的解决方案/解决方法
我在渲染行中的一个模板元素上设置了一个角度QueryList
,并订阅对其所做的更改。通过这种方式,我可以访问新添加的行以设置焦点
因此,在html中:
<p-dataTable [value]="entries">
<p-column">
<ng-template let-item="rowData" pTemplate="body">
<input #myInput />
@ViewChildren('myInput') startTimeInputList: QueryList<ElementRef>;
. . .
ngAfterViewInit() {
this.startTimeInputList.changes.subscribe((p) => {
this._renderer.invokeElementMethod(p.last.nativeElement, 'focus');
});
}