我正在使用AngularJS完成我的第一个项目,现在我遇到了一个无法理解的JavaScript问题。也许这对于在JS中更有经验的人来说是微不足道的,如果是这样的话,我希望你们可以帮助我:)。
我在函数中进行了这个字符串比较,它接收一个从视图中作为参数传递的id,然后将其与服务中保存的对象的id进行比较:
for (var i = 0; i < this.Sessions.length; i++) {
if (this.Sessions[i].sessionId === sessionId) {
for (var j = 0; j < this.Sessions[i].Instances.length; j++) {
if (this.Sessions[i].Instances[j].instanceId === instanceId);
{
console.log("InstanceId's: " + this.workoutSessions[i].Instances[j].instanceId + " " + instanceId);
//Do stuff and return.
}
}
}
}
当我运行该方法时,所有实例的所有instanceId都将评估为true ..为什么???据我所知,我只是比较字符串,但我猜不是。外部比较可以正常工作,这让我更加陌生。
在控制台中输出,表明无论字符串的值如何,它们都会评估为真。
InstanceId&#39; s:l0h34qzzgdlpu8fr 42p9smh9kxdsfw29
InstanceId&#39; s:42p9smh9kxdsfw29 42p9smh9kxdsfw29
我想要做的就是在我找到正确的实例后立即停止该功能,但是如果我在IF块中放入一个return语句,我的编译器会告诉我j ++语句是不可达的,表明无论表达方式是什么,并且......这都超出了我的范围。
如何从视图传递参数:
<div ng-repeat="instance in session.Instances">
//Some form controls here...
<div style="float: right;">
<button class="btn btn-default" ng-click="addOne(session.sessionId, instance.instanceId)"> + 1</button>
<button class="btn btn-default">Remove</button>
</div>
</div>
有人可以帮忙吗??
提前致谢。
答案 0 :(得分:0)
if (this.Sessions[i].Instances[j].instanceId === instanceId);
结尾的冒号似乎是罪魁祸首......
答案 1 :(得分:0)
删除if子句中的分号。
您的代码与
相同 if (this.Sessions[i].Instances[j].instanceId === instanceId)
{
;
}
{
console.log("InstanceId's: " + this.workoutSessions[i].Instances[j].instanceId + " " + instanceId);
//Do stuff and return.
}