我将我正在使用的代码放在this Plunker中。
var arFloorStatus=['disabled','',''];
var spFloorStatus=['','','disabled'];
这两个数组平行于:
var buildingFloors=['GR','01','02'];
显示将使用哪个楼层。
此数组包含所有可能的楼层:
var floors =[{
name:"Ground Floor",
initial:"GR",
},{
name:"1st Floor",
initial:"01",
},{
name:"2nd Floor",
initial:"02",
},{
name:"3rd Floor",
initial:"03",
}];
for循环搜索buildingFloors
和floors
以创建两个对象:
for(i=0;i<buildingFloors.length;i++){
for(c=0;c<floors.length;c++){
if(floors[c].initial == buildingFloors[i]){
$scope.arFiles.push({
floor:floors[i].name, initial:floors[i].initial, status:arFloorStatus[c]
});
$scope.spFiles.push({
floor:floors[i].name, initial:floors[i].initial, status:spFloorStatus[c]
});
}
}
}
在arFiles
中,底层(GR)被“禁用”,而在spFiles中,二楼(02)被“禁用”。 我想在其中添加一个按钮来更改正在使用的对象。现在,spFiles
使用ng-repeat
显示:
<tr ng-repeat = "x in spFiles">
<th scope="row">{{x.floor}}</th>
<td>AR{{x.initial}}.pdf {{x.status}} {{x.labelname}}</td>
<td>AR{{x.initial}}.dwf {{x.status}} {{x.labelname2}}</td>
<td>AR{{x.initial}}.dwg {{x.status}} {{x.labelname3}}</td>
</tr>
我的第一个想法是克隆对象,而不是包含spFiles
的ng-repeat,它可能包含一个通用名称,它是要设置使用的任何对象的克隆,但克隆对象似乎过于复杂为了我的任务。我希望有更多的“角度方式”来完成我的任务,但我不确定如何去做。
遵循:
$scope.switchObj = function(newObj){
if(newObj == "ar"){
//somehow switch the object being used in the ng-repeat.
}
}
答案 0 :(得分:1)
你是什么意思&#34;克隆&#34; ?
这应该有效:
<tr ng-repeat = "x in files">
<th scope="row">{{x.floor}}</th>
<td>AR{{x.initial}}.pdf {{x.status}} {{x.labelname}}</td>
<td>AR{{x.initial}}.dwf {{x.status}} {{x.labelname2}}</td>
<td>AR{{x.initial}}.dwg {{x.status}} {{x.labelname3}}</td>
</tr>
并影响您要在files
变量
$scope.switchObj = function(newObj){
if(newObj == "ar"){
$scope.files = newObj;
}
}
请参阅以下工作插件:{{3}}