jQuery Kendo 网格从模板调用函数

jQuery Kendo Grid calling a function from template

背景: 我正在尝试在网格上工作,其中一列可以根据网格中的列值使用不同的编辑器。我在 Telerik 站点上找到了一个可用的 example。效果很好!

问题: 我喜欢将 html 文件中的 html 代码与 js 文件中的 jquery 代码分开。一旦我像这样分离出代码,我就会收到一条错误消息,提示“customTemplate is not defined”。 customTemplate 是一个从字段 editor 下的 template 调用的函数。我还创建了一个 JsFiddle 我的代码在本地的样子,但我似乎遇到了同样的错误。

我认为问题出在我调用 customTemplate 函数的模板属性上。我尝试将双引号换成单引号,但似乎也没有用。

下面是 grid 和 customTemplate 函数的定义:

   $("#grid").kendoGrid({
      dataSource: dataSource,
      columns: [
        { field: "id" , title: "ID" },
        { field:"type" , title: "Type" },
        { field: "editor",
          title: "Editor",
           template: "#=customTemplate(data.type,data.editor)#",
          editor: chooseEditor
        }],
      editable: true
    });
  });

 function customTemplate(type,value) {
    if (value == null)
      return "";

    switch (type) {
      case "date":
        return kendo.toString(kendo.parseDate(value), 'yyyy/MM/dd');
      default:
        return value;
    }
  }

使用函数而不是模板字符串来调用您的函数:

{
  field: 'editor',
  title: 'Editor',
  template: function(dataItem) {
    return customTemplate(dataItem.type, dataItem.editor);
  },
  editor: chooseEditor
}

Fiddle: https://dojo.telerik.com/AluziYAc