javascript - 如何使用 AngularJS 在 Kendo 网格列模板中使用函数

标签 javascript angularjs templates kendo-ui grid

我在 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/

相关文章:

C++ - 如何键入别名、typedef 或包装 boost::variant?

javascript - 如何仅在 Promise 完成后才执行函数?

javascript - Chrome 不允许 HTTP 托管网站访问摄像头和麦克风

c++ - 模板函数获取参数包和初始化列表

javascript - 使用纯 JavaScript 渲染这些 Angular2 组件

javascript - 表单输入指令与隔离范围的两种方式绑定(bind)

c++ - 模板和嵌套类型查找

javascript - 如何创建动态网格

javascript - 为什么这些记录没有存储在缓存中?

javascript - Angular JS 中的动态参数传递