Angularjs 在KendoGrid模板中使用函数

Angularjs 在KendoGrid模板中使用函数,angularjs,kendo-ui,Angularjs,Kendo Ui,我有一个AngularJS KendoGrid,有两列:代码和名称。代码是一个数字,名称是代码的函数:getName(code)。我将函数放在模板中,但是得到了未定义的函数。有什么想法吗 HTML 对于剑道模板,#=something#语法用于将值呈现为HTML,因此不能调用这样的函数 省去=符号,只用它 #某物# 执行任意javascript 请参阅:对于剑道模板,#=something#语法用于将值呈现为HTML,因此不能调用这样的函数 省去=符号,只用它 #某物# 执行任意javascri

我有一个AngularJS KendoGrid,有两列:代码和名称。代码是一个数字,名称是代码的函数:
getName(code)
。我将函数放在模板中,但是得到了未定义的
函数
。有什么想法吗

HTML

对于剑道模板,#=something#语法用于将值呈现为HTML,因此不能调用这样的函数

省去=符号,只用它 #某物# 执行任意javascript

请参阅:

对于剑道模板,#=something#语法用于将值呈现为HTML,因此不能调用这样的函数

省去=符号,只用它 #某物# 执行任意javascript


请参阅:

您可以使用角度模板表达式,如
{}
以及剑道表达式,如
=
。对于您的示例,请尝试:

$scope.gridOptions = {
   columns: [
      { field: "code" },
      {
        field: "name",
        template: '{{ getName(dataItem.code) }}'
      }
   ]
};
$scope.getName = function(code) {
  return "This code is " + code;
};

查看此演示:

您可以使用角度模板表达式,如
{}
,以及剑道表达式,如
=
。对于您的示例,请尝试:

$scope.gridOptions = {
   columns: [
      { field: "code" },
      {
        field: "name",
        template: '{{ getName(dataItem.code) }}'
      }
   ]
};
$scope.getName = function(code) {
  return "This code is " + code;
};

请参阅此演示:

,仍然不工作是的,在模板中执行函数很棘手。这与范围有关。如果通过删除var将getName()放入全局范围,那么它就可以工作。我不建议这样做。我通常避免剑道模板中的函数。通过将模板更改为:“此代码为#=代码”,可以获得相同的效果。我需要在网格列中使用javascript函数,或者使用模板,或者其他什么,有解决方法吗?我不能把函数放在全局范围内。如果不太复杂的话,解决方法是在模板内编写函数逻辑。如果太复杂,那么在将数据提供给网格之前需要对数据进行预处理。直接更新相关数据源如何?当字段
b
更改时,我是否可以触发一个更新字段
a
的函数,该函数仍然不工作?是的,在模板中执行函数很棘手。这与范围有关。如果通过删除var将getName()放入全局范围,那么它就可以工作。我不建议这样做。我通常避免剑道模板中的函数。通过将模板更改为:“此代码为#=代码”,可以获得相同的效果。我需要在网格列中使用javascript函数,或者使用模板,或者其他什么,有解决方法吗?我不能把函数放在全局范围内。如果不太复杂的话,解决方法是在模板内编写函数逻辑。如果太复杂,那么在将数据提供给网格之前需要对数据进行预处理。直接更新相关数据源如何?当字段
b
更改时,我是否可以触发更新字段
a
的功能?
$scope.gridOptions = {
   columns: [
      { field: "code" },
      {
        field: "name",
        template: '{{ getName(dataItem.code) }}'
      }
   ]
};
$scope.getName = function(code) {
  return "This code is " + code;
};