Kendo treeview шаблон: d.MyFunction не является функцией

Я использую элемент управления Kendo treeview (версия mvvm). Элементы привязаны к шаблону, использующему функции модели представления.

<div id="myTreeView"
         data-role="treeview"
         data-bind="source: MySource"
         data-template="treeview-template">
</div>

<script id="treeview-template" type="text/x-kendo-template">
    <span data-bind="events: { click: MyClickEvent }, css: { active: MyCssFunction(#=item.Id#) }">#: item.Name #</span>
</script>

viewModel.MyCssFunction = function(e) {...};
viewModel.MyClickEvent= function(e) {...};

Событие click выполняется, но функция css выдает ошибку во время привязки модели: Uncought Type error: d.MyCssFunction не является функцией. Если я заменяю функцию простым свойством модели (например, логическим), все работает. Может кто-нибудь помочь?

1 ответ

  1. Это кажется невозможным, но вы можете ссылаться на функцию в условном выражении (обратите внимание, что viewModel должен быть добавлен здесь):

    # if(viewModel.MyCssFunction(item.Id)) { #
         <span class="active" data-bind="events: { click: MyClickEvent }">#: item.Name #</span>
    # } else { #
         <span data-bind="events: { click: MyClickEvent }">#: item.Name #</span>
    # } #