Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用于调用函数的Ng_Javascript_Angular_Ionic2_Ngfor - Fatal编程技术网

Javascript 用于调用函数的Ng

Javascript 用于调用函数的Ng,javascript,angular,ionic2,ngfor,Javascript,Angular,Ionic2,Ngfor,我使用ionic 2开发聊天应用程序。这是我的html代码 {{chat.date | amDateFormat:'LL'} {{checkdate(chat.date)} {{chat.path_text} {{chat.date}amDateFormat:'hh:mmA'} {{chat.message_text} {{chat.date}amDateFormat:'hh:mmA'} 它很好用。显示聊天信息。但我不需要显示相同的日期值,因为我调用了checkdate(chat.date

我使用ionic 2开发聊天应用程序。这是我的html代码


{{chat.date | amDateFormat:'LL'}

{{checkdate(chat.date)}
{{chat.path_text} {{chat.date}amDateFormat:'hh:mmA'} {{chat.message_text} {{chat.date}amDateFormat:'hh:mmA'}
它很好用。显示聊天信息。但我不需要显示相同的日期值,因为我调用了
checkdate(chat.date)

这是我的功能

checkdate(日期)
{
var res=拆分日期(“”);
var A=res[0];
var local=localStorage.getItem('chatdate');
此.msgdate=“”;
if(local==undefined | | local==null)
{
这个.msgdate=A;
localStorage.setItem('chatdate',this.msgdate);
}
else if(本地!==未定义)
{
console.log(本地!=A);
如果(本地!=A)
{
this.msgdate=A;
localStorage.setItem('chatdate',this.msgdate);
}
}
控制台日志(“日期值”);
}
实际上数组长度是3。但是这个函数调用了很多次。我检查了这个函数调用了多少次。因为我只是安慰字符串值。它安慰了很多次,大概100次


如何停止重复调用函数?

原因是您正在从模板调用函数:

{{checkdate(chat.date)}} 
这是您真正想要避免的,因为模板中包含函数意味着每次运行更改检测时都会执行这些函数。在最坏的情况下,这会导致无限循环


因此,建议您重构代码,处理组件中的逻辑,将其分配给变量,并在模板中使用变量。

谢谢。我为最后一项值分配了变量仅更新数组。对不起,我很难理解你的意思:)你能显示代码而不是你尝试过的代码吗?我有一个数组,有3个值。数组值包含msg和date。date值是相同的。实际上我的应用程序显示的是相同的日期值。我需要不显示相同的日期值。我如何检查…仍然不能真正理解infg,请您创建一个plunker来展示这个问题,我很乐意看一看:)