我对我的代码发生了什么感到困惑。 当我在Chrome控制台中运行此代码片段(以下代码)时,它会按照设计成功运行。但是当它在应用程序中运行时,它无法按设计运行。
使用此代码段的意图是检查selectedItemIDSet
数组的内容是否存在于TotalOfallIds
数组的总数中。如果确实如此,则应该弹出一个Yes
,否则返回No
var selectedItemIDSet = Session.get('selectedItemIDSet');
console.log (selectedItemIDSet);
yeilds上面的console.log()函数:
[“GttzCQLzMeqj”,“yzML7ZLvkWkjBBvq5”,“2HwJhHyjDhDogJK”]
var TotalOfallIds = buyList.find().fetch().map(function(u) { return u._id; });
console.log (TotalOfallIds);
yeilds上面的console.log()函数:
EkebEek7KH8mdpNXg,LZJKA8S3wYNwHakzE,ikrbCDuttHrwkEcuv, yzML7ZLvkWkjBBvq5,e72HwJhHyjDhDogJK,GttzCQLzMeqjJP4Ae, XzGxS3LDtJ4DrXSdc,FJDhf7mzCxX4CKThe,TaTg6hf3Gok5NsWYp, NhDXRMnLWpwfAkWzJ,nG9TsoScYGFbEuerr,8CdapJoeSxSScHKFs, EsjSJfSgatrYTEnDK
var noOfloops = selectedItemIDSet.length;
var selectedItemId = this._id;
var allclicked;
for(var i = 0; i < noOfloops; i++ ) {
var clickedImg = selectedItemIDSet[i];
allclicked = TotalOfallIds.indexOf(clickedImg) > -1;
console.log("May: " +allclicked);
if (allclicked == 1 ) {
alert("Yes! " );
// return "selectedItem";
}
else {
alert("No! ");
//return "";
}}
以上在控制台中运行得很好,但是在我的template.helper中,for循环似乎无法循环(三次)通过selectedItemIDSet
数组,但循环(13次)通过所有{{ 1}}属性,它似乎只是针对TotalOfallIds
检查GttzCQLzMeqj
属性!
这对我没有任何意义!
在我的template.helper中找到我的代码。
TotalOfallIds
对于详细程度感到抱歉!
非常感谢任何帮助。
答案 0 :(得分:0)
我通过将if条件代码从原始if (allclicked == 1 )
更改为if (selectedItemId.indexOf(clickedImg) != -1)
来解决了该问题。它仍然没有任何意义,为什么它可以在控制台中工作,但不能在代码中工作。
所以...如果条件代码为:
,则完全正常工作if (selectedItemId.indexOf(clickedImg) != -1) {
alert("Yes! " +clickedImg );
return "selectedItem";
}
else {
// alert("No! ");
}