在剑道的日期管道中包含变量值(动态格式):AngularJS
Posted
技术标签:
【中文标题】在剑道的日期管道中包含变量值(动态格式):AngularJS【英文标题】:Include Variable value in date pipe in Kendo (Dynamic format) : AngularJS 【发布时间】:2019-05-09 15:05:39 【问题描述】:我有一个日期值的剑道列,我们在下面的列内的模板属性中使用了这样的管道。
现在我想根据日期格式更改剑道网格列的格式
我的问题/问题:- 我正在根据用户偏好从 localStorage 中检索日期格式,例如 dd-MM-yyyy 或 MM-dd-yyyy 或 dd-MM-yy 或 MM-dd-yy。
但是,每当我在模板中使用该变量(包含日期格式,例如:dd-MM-yyyy)代替具有相同默认日期管道格式的默认日期管道时,剑道不接受它并给出错误:不能读取未定义剑道的属性“超时”
const myDateFormat = this.$localStorage.dateFormat;
function getDefaultColumns($translate)
return [
field: 'INVOICE_DATE',
title: $translate.instant('invoiceDate'),
headerTemplate: ' \'invDate\' | translate ',
template: ' dataItem.INVOICE_DATE | date: \'yyyy-MM-dd\' ',//i am using the localStorage value here
filterable:
ui(element)
element.kendoDatePicker(
format: 'yyyy-MM-dd'
);
,
width: 100
];
【问题讨论】:
kendo 和 angularjs 之间的范围有点棘手,你能试试打印 dateFormat 吗?结果如何? 如果我使用 dateFormat 这样的日期:dateFormat,它不会检测到变量 dateFormat,因为我正在使用 Visual Studio 代码,它说 dateFormat 已声明但从未使用过。 【参考方案1】:我认为你可以使用 ES2015 模板字符串完成你想要的。
考虑对您的程序清单进行此修改:
function getDefaultColumns($translate)
let dateFormat = 'yyyy-MM-dd';
return [
field: 'INVOICE_DATE',
title: $translate.instant('invoiceDate'),
headerTemplate: ' \'invDate\' | translate ',
template: ` dataItem.INVOICE_DATE | date: \'$dateFormat\' `,
filterable:
ui(element)
element.kendoDatePicker(
format: dateFormat
);
,
width: 100
];
【讨论】:
我尝试过这样做,但我认为由于剑道,它会说“可能未处理的拒绝:” 对不起,如果没有更多信息,这是我能做的最好的事情。考虑编辑您的问题以包含可运行的 sn-p。然后我可以调整你的 sn-p 直到它起作用。 ES2015 模板字符串使它工作,我没有在开始和结束时应用 ` 。以上是关于在剑道的日期管道中包含变量值(动态格式):AngularJS的主要内容,如果未能解决你的问题,请参考以下文章