我在 Kendo 网格中有一个列,我想在渲染时执行一些特定的逻辑,并且我正在使用 Angular。我使用 k-columns 指令设置了网格列。
看了the documentation之后,这看起来很简单:我可以将模板选项添加到我的列中,定义函数来执行我的逻辑,然后将 dataItem 值传入。我所拥有的看起来像这样:
k-columns='[{ field: "Name", title: "Name",
template: function (dataItem){
// Perform logic on value with dataItem.Name
// Return a string
}
}]'
但是,运行它会导致出现语法错误,提示在我的函数中构成 block 开头的字符“{”。
我见过几个用这种格式定义模板函数的例子。是否还需要做其他事情才能使它起作用?我做错了什么吗?还有另一种将模板定义为函数并将列数据传递给它的方法吗? (我尝试在我的 $scope 上创建一个函数,它起作用了,除了我不知道如何将数据传递到函数中。)
感谢您的帮助。
最佳答案
使用 AngularJS 和 Kendo 时,似乎不支持以这种方式定义列模板。此方法适用于不使用 Angular(标准 MVVM)的项目,但包含它会失败。
我的一位同事发现的解决方法是使用 ng-bind 构建模板以在 $scope 上指定一个模板函数,所有内容都在一个跨度内:
template: "<span ng-bind=templateFunction(dataItem.Name)>#: data.Name# </span>"
这是 Telerik 在其 Kendo-Angular 源代码中实现的默认列模板方法。我还不知道 data.Name 值是否是必需的,但这对我们有用。
关于javascript - 如何使用 AngularJS 在 Kendo 网格列模板中使用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24148048/