首页 > 解决方案 > 剑道模板中的功能:Angular JS1.6

问题描述

我有一个这样的货币列:

{
  field: 'INVOICE_AMOUNT_ORIGINAL',
  title: $translate.instant('invoiceAmount'),
  format: '{0:n}',
  template: '#= currency(dataItem.INVOICE_AMOUNT_ORIGINAL)#',
  headerTemplate: '{{ \'invAmount\' | translate }}',
  attributes: {
    style: 'text-align: right;'
  },
  width: 115
}

我有一个功能

function currency(currencyValue) {
  kendo.culture('de-DE'); 
  kendo.toString(currencyValue, 'c2'); 
}

但即使在模板中应用了正确的语法后,该函数也不会被调用。

我正在尝试通过函数在模板中传递诸如 de-DE 或 en-US 之类的值,以便任何用户对其设置偏好时,它都会在剑道网格中动态变化,

我做错了什么?

标签: javascriptangularjskendo-uikendo-grid

解决方案


尝试将功能货币放入 $scope。我不知道您的模板是如何工作的,但我认为问题在于您的模板字段没有看到该功能。

$scope.currency = function(currencyValue) {
    kendo.culture('de-DE'); 
    kendo.toString(currencyValue, 'c2');
};

另一种选择是在字段中使用表达式,就像在 headerTemplate 中所做的那样。

template: '#= {{currency(dataItem.INVOICE_AMOUNT_ORIGINAL)}}#'

推荐阅读