У нас есть kendo-treeview
, размещенный внутри тега form
.В дереве мы визуализируем каждый элемент, используя шаблон кендо, следующим образом:
<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();
}