我们在标签kendo-treeview
内放置了一个。form
在树中,我们使用 kendo 模板渲染每个项目,如下所示:
<kendo-treeview [nodes]="roleFeatureTree" textField="text"
kendoTreeViewExpandable kendoTreeViewSelectable
kendoTreeViewHierarchyBinding childrenField="items">
<ng-template kendoTreeViewNodeTemplate let-dataItem style="width:100%">
<span class="float-left">{{dataItem.text}} </span>
<table>
<tr>
<td>
<mat-checkbox *ngIf="dataItem.Feature.CanView"
[checked]="dataItem.ViewAccess"
(change)="roleFeatureChecked($event,dataItem.Feature.UID,'ViewAccess')">
</mat-checkbox>
</td>
</tr>
</table>
<div class="float-right">
</div>
</ng-template>
</kendo-treeview>
但是,checked
绑定不起作用 - 即[checked]="dataItem.ViewAccess"
.
而且我不能使用[(ngModel)]
,因为我们在一个 html 表单中。
我可以确认我们的 API 已成功将检查的值保存到我们的数据库中。并且在重新加载页面时,我可以调试和检查树节点数据。该项目确实已检查。
而当复选框被点击时,我们可以看到复选框的状态:
roleFeatureChecked(event, roleFeatureUID:any, rfType:string){
ft[rfType] = event.checked; // this part working fine.
this.updateChildrenFeatures(roleFeatureUID, rfType, event.checked);
this.roleForm.markAsDirty();
}