以下是我的控制器范围
$scope.all = [
{'ID':'1','NAME':'BOB','BMW':1,'AUDI':'0'},
{'ID':'2','NAME':'PETE','BMW':'0','AUDI':'1'}
];
$scope.cars = [
{'ID':'1','CAR':'BMW'},
{'ID':'2','CAR':'AUDI'}
];
这是我的观点
<table class="table">
<thead>
<tr>
<th>Name</th>
<th ng-repeat="c in cars">{{c.CAR}}</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="u in all">
<td>{{ u.NAME }}</td>
<td ng-repeat="c in cars">
<input type="checkbox" ng-checked="{{ u.c.CAR }}">
</td>
</tr>
</tbody>
</table>
现在我想根据汽车ng-checked="{{ u.c.CAR }}"
的值检查复选框,但我无法设置它。我在萤火虫中没有任何错误。 angularjs是否提供这样的表达?如果现在,还有什么其他解决方案?我希望它在视图中设置
更新:我应该这么做了。这是我的JSFIDDLE
答案 0 :(得分:2)
如果我理解正确,您希望将1
或0
解析为true
和false
。你应该可以这样做:
<tr ng-repeat="u in all">
<td>{{ u.NAME }}</td>
<td ng-repeat="c in cars">
<input type="checkbox" ng-checked="u[c.CAR] == 1">
</td>
</tr>
*注意:您无需在{ }
内插入ng-checked
。
答案 1 :(得分:2)
是的,你的表达有点偏离:
ng-checked="u[c.car] == 1"
答案 2 :(得分:0)
也许你可以解决你的问题,重新审视你的重复,如果你写了像你一样的东西,而不是你所有的,你可以按照你想要的方式使用你的项目,无论如何看看这个角度ui ng-grid的模块,它有很多选项,它可以满足你的需求
答案 3 :(得分:0)
你的表情有误。试试这个:
<tr ng-repeat="u in all">
<td>{{ u.NAME }}</td>
<td ng-repeat="c in cars">
<input type="checkbox" ng-checked="u[c.CAR].toString() == '1'">
</td>
</tr>
我还建议确保您的数据是所有字符串或所有整数,而不是两者的混合。
答案 4 :(得分:0)
那是你的答案。您的“所有”列表中都有一些la脚的报价!另外,您的ng-repeat模板写错了。
您的$ scope应该初始化为
function DefaultCtrl($scope) {
$scope.all = [
{'ID':'1','NAME':'BOB','BMW':'1','AUDI':'0'},
{'ID':'2','NAME':'PETE','BMW':'0','AUDI':'1'}
];
$scope.cars = [
{'ID':'1','CAR':'BMW'},
{'ID':'2','CAR':'AUDI'}
];
}
您的$ scope的DOM应该是
<div ng-app="" ng-controller="DefaultCtrl">
<table class="table">
<thead>
<tr>
<th>NAME</th>
<th ng-repeat="c in cars">{{c.CAR}}</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="u in all">
<td>{{ u.NAME }}</td>
<td ng-repeat="c in u.BMW">
<input type="checkbox" ng-checked="{{ c }}">
<td ng-repeat="c in u.AUDI">
<input type="checkbox" ng-checked="{{ c }}">
</td>
</td>
</tr>
</tbody>
</table>
</div>