indexOf在AngularJS控制器中不起作用

问题描述 投票:1回答:3

我有一个明显是字符串的对象,因为我可以访问它上面的字符串:console.log(sender)将显示Fri Mar 02 2018 09:00:20 GMT + 0000(GMT标准时间),这显然是一个字符串。

现在,当我尝试这样做时:

 if (sender.indexOf("(GMT Standard Time)") !== -1)

我被告知“sender.indexOf不是一个函数......”

我正在使用angularJS版本1.4.9

如果它有任何相关性,当我将鼠标悬停在发件人上时,它会显示“(参数)发件人:任何”

什么???

javascript angularjs
3个回答
0
投票

您需要在使用indexof之前转换为字符串,目前您有一个Date类型值

if (sender.toString().indexOf("(GMT Standard Time)") !== -1)

0
投票

按照这个例子你的代码应该工作 - 因此你的sender不是一个字符串:

var sender = 'Fri Mar 02 2018 09:00:20 GMT+0000 (GMT Standard Time)'

if (sender.indexOf("(GMT Standard Time)") !== -1) alert(true)

尝试使用:

if (sender.toString().indexOf("(GMT Standard Time)") !== -1) alert(true)

0
投票

这意味着sender不是字符串对象,因此您需要在调用indexOf函数之前将其转换为字符串

if(typeof sender !== 'string') sender = sender.toString();
if (sender.indexOf("(GMT Standard Time)") !== -1){
   // your code here
}

有关详细信息,请参阅String.prototype.indexOf()

© www.soinside.com 2019 - 2024. All rights reserved.