我正在搜索表单上工作,我需要检查城市是否为空。如果为空,则将班加罗尔分配给它,其他显示所选城市。这是我的 If 条件
if(this.locations[0].city!="")
{
var Dynamic = this.locations[0].city;
}
else
{
Dynamic = "Bangalore";
}
但是得到
运行时错误。无法读取未定义的属性"0"。
我是Ionic 2的新手。
修改 IF 条件,如下所示
if(this.location!=undefined && this.location.length!=0 && this.locations[0].city!="")
{
var Dynamic = this.locations[0].city;
}
else
{
Dynamic = "Bangalore";
}
我可能会这样做
var Dynamic = "Bangalore";
' first to are verifying they are defined
if(this.locations && this.locations[0] && this.locations[0].city && this.locations[0].city.length > 0)
{
Dynamic = this.locations[0].city;
}
我建议你创建一个名为checkNested
的函数来检查嵌套对象的有效性,并在整个应用程序中使用它。您可以将其放在服务中。
另外,我认为出于范围原因,您应该在 if 语句之外定义Dynamic
。
var Dynamic = "Bangalore";
if(this.locations && // Checking if this.locations is valid before indexing it
this.checkNested(this.locations[0], "city") &&
this.locations[0].city !="" ){
Dynamic = this.locations[0].city;
}
此处定义了checkNested
函数。