我们在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"
。
由于我们位于html表单中,因此我无法使用[(ngModel)]
。
我可以确认我们的API已成功将检查的值保存到我们的数据库中。在重新加载页面时,我可以调试和检查树节点数据。该项目确实已检查。
点击复选框后,我们可以看到复选框状态:
roleFeatureChecked(event, roleFeatureUID:any, rfType:string){
ft[rfType] = event.checked; // this part working fine.
this.updateChildrenFeatures(roleFeatureUID, rfType, event.checked);
this.roleForm.markAsDirty();
}