У нас есть 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();
}Поскольку ngModel не подходит, рассматривали ли вы возможность использования Реактивные формы и свойства formControl / formControlName?
@DanielGimenez - правильно, проблема не в этом. Как-то допустил опечатку при редактировании поста.
@ naeramarth7 - да, это древовидное представление кендо находится внутри элемента <form>; однако formControlName по-прежнему не ставит галочку в этом поле. Я проверю это еще раз.





В вашем примере у проверенного атрибута отсутствует открывающая скобка. Это не проблема?