在这个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;
}
}
纪律数组位于script.js文件的顶部。
问题是,现在突然我得到一个错误当我点击其中一个链接。我不知道什么在复制。我阅读了此错误的文档,并将track by $index
添加到位于index.html底部的ng-repeat
。看看这个普朗克,看看它现在做了什么。当然,这有一个简单的解释。我从来没有遇到过这种情况。
我能在这里找到的唯一另一个答案似乎与我的问题有关的是这个,但是,ng-repeat
正在使用的对象不是JSON对象,我很确定:
spFiles.push({
floor:floors[c].name, initial:floors[c].initial, status:spFloorStatus[i]
});
另外,在我创建for循环引起问题之前,它已经工作了。
如果有什么不清楚的地方我道歉。请,如果你需要我澄清任何事情,请告诉我,我已经尽可能彻底,尽可能不让人困惑了。这是因为学科[i]。数组返回字符串,而不是变量,命名为arFiles。
您可以将这些变量初始化为:
var tempFiles={};
,然后加上:
tempFiles.arFiles={
floor:floors[c].name, initial:floors[c].initial, status:arFloorStatus[i]
};
和get
return $scope.files = tempFiles[disciplines[i].array];