this Plunker中的代码可以正常工作(只有前3个链接可以执行某些操作)。但随着名单开始增长,我意识到我需要一个for循环。所以在switch function
内我改变了这个:
if(obj == "SP") {
$scope.discipline ='Link2'
return $scope.files = spFiles;
}
else if(obj == "LSM"){
$scope.discipline = "Link3"
return $scope.files = lsmFiles;
}
else if(obj == "AR"){
$scope.discipline = "Link1"
return $scope.files = arFiles;
}
进入这个:
for(i=0;i<disciplines.length;i++){
if(obj == disciplines[i].initial){
return $scope.files = disciplines[i].array;
}
}
disciplines数组位于script.js文件的顶部。
问题是,现在突然间我点击其中一个链接时出现了欺骗错误。我不知道什么是重复。我因为此错误而阅读documentation,并将track by $index
添加到index.html底部的ng-repeat
。看看this Plunker,了解它现在的作用。当然有一个简单的解释。我从来没有遇到过这个。
我在这里找到的唯一一个似乎与我的问题相关的答案是this one,但是,ng-repeat
使用的对象不是JSON对象我很漂亮肯定的是:
spFiles.push({
floor:floors[c].name, initial:floors[c].initial, status:spFloorStatus[i]
});
另外,在我创建for循环之前它正常工作导致了麻烦。
如果有什么不清楚,我道歉。如果你需要我澄清任何事情只是让我知道,我试图尽可能彻底,尽可能地混淆。
答案 0 :(得分:-1)
那是因为disciplines [i] .array只返回字符串,而不是你的变量,名为arFiles。
您可以将这些变量初始化为:
var tempFiles={};
然后添加:
tempFiles.arFiles={
floor:floors[c].name, initial:floors[c].initial, status:arFloorStatus[i]
};
并获得:
return $scope.files = tempFiles[disciplines[i].array];