阅读ng-checked属性我意识到我们可以使用angular expressions确定是否选中了复选框。
我有图像和日期。我想创建一个表格,表示哪个图像在特定日期处于活动状态。这个sql fiddle应该可以帮助你理解我的意思。
在小提琴中,选中四个复选框,但不应检查其中一个(与第一个图像对应的那个和' feb'日期),因为' feb&#39 ;不在第一张图片的日期(请参阅下面的$scope
定义)
我的问题是date = image.dates
属性中的ng-checked
表达式总是返回true,因此选中了四个复选框。
我可以使用哪种表达方式来验证特定日期是否在图片的定义日期?
我可以更改数据模型,因此如果将特定图像的日期更新为数组而不是字符串,请继续。
视图
<div ng-controller="MyCtrl">
<table>
<tr>
<td style="width:80px;"></td>
<td style="width:35px;" ng-repeat="date in dates">{{date}}</td>
</tr>
<tr ng-repeat="image in images">
<td>{{image.name}}</td>
<td ng-repeat="date in dates">
<input ng-checked="date = image.dates" type="checkbox" />
</td>
</tr>
</table>
</div>
应用
var myApp = angular.module('myApp',[]);
function MyCtrl($scope) {
$scope.images = [
{name:'Image 1',dates:'jan'},
{name:'Image 2',dates:'jan,feb'}
];
$scope.dates = [
"jan",
"feb"
];
}
答案 0 :(得分:1)
您必须检查日期是否包含日期表达式。
这样的事情:
<tr ng-repeat="image in images">
<td>{{image.name}}</td>
<td ng-repeat="date in dates">
<input ng-checked="image.dates.indexOf(date) > -1" type="checkbox" />
</td>
</tr>