我正在尝试创建一个类,该类创建一个通用的kendo TreeView,树可以包含带复选框的项目和没有复选框的项目。 所以,我用流动的c'tor创建了一个类:
constructor(checkable: boolean = false) {
// Create the treeview options
const treeViewOptions: kendo.ui.TreeViewOptions = {
checkboxes: {
checkChildren: true,
template: "# if (item.level() > 0) { #" +
"<input type='checkbox' #= item.checked ? 'checked' : '' #>" +
"# } #"
},
// ... The rest of the treeViewOptions ...
}
现在,他们的item.level == 0的所有项目都没有复选框。 我希望如果c'tor的参数“checkable”为false,那么树中的所有项目都不会有复选框。我不知道如何将“checkable”参数传递给模板。我想要这样的东西:
checkboxes: {
checkChildren: true,
template: "# if (checkable && item.level() > 0) { #" +
"<input type='checkbox' #= item.checked ? 'checked' : '' #>" +
"# } #"
},
请帮助我,如果你认为有更优雅的方式,我会很高兴听到。 感谢
答案 0 :(得分:1)
您可以将模板设为匿名函数,并根据构造函数参数发出不同的模板字符串。
template: function () {
if (checkable) {
return ... template string that allows checkboxes at item level > 0 ...
} else {
return ... simpler template string that has no checkboxes anywhere ...
}
}