Использование параметра в шаблоне Kendo ui для флажков в TreeViewOptions - PullRequest
0 голосов
/ 02 мая 2018

Я пытаюсь создать класс, который создает общий кендо 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, не имеют флажка. Я хочу, чтобы, если параметр «checkable» c'tor был false, тогда все элементы в дереве не имели флажков. Я не знал, как передать параметр «проверяемый» в шаблон. Я хотел что-то вроде этого:

        checkboxes: {
        checkChildren: true,
        template: "# if (checkable && item.level() > 0) { #" +
            "<input type='checkbox' #= item.checked ? 'checked' : '' #>" +
            "# } #" 

        }, 

Пожалуйста, помогите мне с этим, и если вы думаете, что есть более элегантный способ сделать это, я буду рад услышать. Спасибо

1 Ответ

0 голосов
/ 02 мая 2018

Вы можете сделать шаблон анонимной функцией, и он будет выдавать разные строки шаблона в зависимости от аргумента конструктора.

template: function () {
  if (checkable) {
    return ... template string that allows checkboxes at item level > 0 ...
  } else {
    return ... simpler template string that has no checkboxes anywhere ...
  }
}
...