我有一个来自数据库的数组。在我的控制器中,我有这段代码:
$rootScope.photobloblist=[];
angular.forEach($scope.photos, function(value3, key3) {
if(key3=="Landscape"){
$rootScope.photobloblist=[];
console.log(key3+"----"+value3.length);
angular.forEach(value3, function(value2, key2) {
for(var i = 0;i<value2.length;i++){
if(key2==Categoryname)
$rootScope.photobloblist.push(value2[i]);
console.log( $rootScope.photobloblist);
}
});
}
});
在我的html文件中,我有一个表格和一个复选框,其中包含了item.selected的ng模型
<tr ng-repeat="item in photobloblist" >
<td><input type="checkbox" name="select" value="selected" ng-model="item.selected"></td>
<td>{{item}}</td>
<td><img ng-src='{{ item }}' width='150px' height='100px'></td>
</tr>
我的问题是我无法检查任何复选框,它显示错误“无法创建在字符串上选中的属性”。我怎样才能修复此错误。我需要使用checkbo来删除我的功能
答案 0 :(得分:0)
$rootScope.photobloblist
是一个字符串数组,您尝试在输入上绑定,但需要对象/对象数组。
if (key2 === "Categoryname") {
$rootScope.photobloblist.push({
value: value2[i],
name: value2[i]
selected: false
});
}
答案 1 :(得分:0)
尝试使用此代码,使用ng-true-value
代替value
<tr ng-repeat="item in photobloblist" >
<td><input type="checkbox" name="select" ng-true-value="1" ng-false-value="0" ng-model="item.selected"></td>
<td>{{item}}</td>
<td><img ng-src='{{ item }}' width='150px' height='100px'></td>
</tr>
答案 2 :(得分:-2)
您可以通过以下代码执行此操作: 由于错误说您无法向字符串添加属性,因此您可以创建一个对象并完成剩下的工作:
$scope.photos={
Landscape:{
Categoryname : ["cat1","cat2"]
}
};
$rootScope.photobloblist=[];
angular.forEach($scope.photos, function(value3, key3) {
if(key3=="Landscape"){
$rootScope.photobloblist=[];
angular.forEach(value3, function(value2, key2) {
for(var i = 0;i<value2.length;i++){
if(key2=="Categoryname"){
var temp ={};
temp.value=value2[i];
$rootScope.photobloblist.push(temp);
}
}
});
}
});