Angular ngModel或双向绑定在角度上需要很长时间吗?
使用复选框初始化可编辑表 子组件Angular ngModel或双向绑定在角度上需要很长时间吗?,angular,angular-ngmodel,two-way-binding,primeng-turbotable,Angular,Angular Ngmodel,Two Way Binding,Primeng Turbotable,使用复选框初始化可编辑表 子组件 <p-table id="resultTable" [columns]="cols" [value]="results" scrollable="true" [resizableColumns]="true" selectionMode="single"> ... <ng-template pTemplate="body" let-rowData let-rowIndex="rowIndex"> ... <td>
<p-table id="resultTable" [columns]="cols" [value]="results" scrollable="true" [resizableColumns]="true" selectionMode="single">
...
<ng-template pTemplate="body" let-rowData let-rowIndex="rowIndex">
...
<td>
<input (click)="checkboxClicked(rowData)" pInputText type="checkbox" [(ngModel)]="rowData.active">
</td>
...
</ng-template>
...
</p-table>
...
<app-child (checkboxClick)="checkbox($event)"></app-child>
...
父组件
<p-table id="resultTable" [columns]="cols" [value]="results" scrollable="true" [resizableColumns]="true" selectionMode="single">
...
<ng-template pTemplate="body" let-rowData let-rowIndex="rowIndex">
...
<td>
<input (click)="checkboxClicked(rowData)" pInputText type="checkbox" [(ngModel)]="rowData.active">
</td>
...
</ng-template>
...
</p-table>
...
<app-child (checkboxClick)="checkbox($event)"></app-child>
...
。。。
...
@组件({
选择器:“应用程序父级”,
templateUrl:“./app parent.html”,
changeDetection:ChangeDetectionStrategy.OnPush
})
导出类ParentComponent实现OnInit、OnDestroy{
复选框ClickSource=新主题();
恩戈尼尼特(){
this.checkboxClickSource.pipe(
...
).订阅(书籍=>{
console.log('222:',book.active);//使用ngModel检查值
});
}
复选框(书本:书本){
this.checkboxClickSource.next(book);
}
}
然后我觉得有个问题很奇怪。
首先假设book.active在开始时为true
在IE浏览器中:
输出为:111:false
222:false
在chrome浏览器中:
生产模式:111:true
222:false
无生产模式:
111:true
222:true
在IE浏览器中,ngModel可以立即工作。但在chrome浏览器和生产模式下,当值传递给父组件时,ngModel工作,但在子组件中没有更改。在chrome浏览器和无生产模式下,ngModel在子组件和父组件中都不起作用
这对我来说真的很奇怪,我无法理解。有人能告诉我为什么会这样吗 你能提供一个演示吗?你能提供一个演示吗?