我有一个带有p-downdown的primeng pdatatable,我想从p-dropdown中选择一个项目,并使用onChange事件将其添加到p-datatable(开头为空),它显示添加的项目ng,但它没有p-datatable,我应该改变什么?感谢
PS。我正在使用角度2
在组件中:
...
public existencias: Existencia[] = [];
public ex_pd: Existencia[] = [];
public medicamentos: SelectItem[];
...
private getAllExistencias() {
this.existenciaService
.getAllExistencias()
.subscribe(
data => {
this.existencias = data;
this.medicamentos = [];
for (let i = 0; i < this.existencias.length; i++)
{
this.medicamentos.push({ label: this.existencias[i].medicamento.nombre , value: this.existencias[i].medicamento.nombre });
}
},
error => console.log(error),
() => console.log('Complete')
);
}
public addMedicamento(medic: string) {//
let e = this.existencias.filter(e => e.medicamento.nombre == medic);
this.ex_pd.push(e[0]);
}
在模板中:
这种方式有效:
<tr *ngFor="let pd of ex_pd; let i = index">
但这样在p-datatable中没有显示任何内容:
<p-dataTable [value]="ex_pd" ...>
<p-header>Listado de Medicamentos ...</p-header>
<p-column field="medicamento.nombre" header="Nombre" ... >
<ng-template pTemplate="filter" let-col>
<p-dropdown [options]="medicamentos" [style]="{'width':'100%'}" (onChange)="addMedicamento($event.value)" styleClass="ui-column-filter"></p-dropdown>
</ng-template>
</p-column>
<p-column field="medicamento.cantidad" header="Cantidad" ... >
...
答案 0 :(得分:0)
确保“immutable”属性设置为false。此属性默认为true,它对我造成了类似于您所说的错误。
<p-dataTable [immutable]="false" ...>
答案 1 :(得分:0)
是的,他说这是正确的,但可能最好的方法是遵循不变的原则!
这意味着您必须始终重新创建数组/对象。怎么这么容易?
//use spread operator
newArr = [...oldArr];
//use Object.Assign
newArr = Object.assign([], oldArr)