我有组件的控制器中的用户数组。我试图用ngRepeat指令来打印它。目前正处于最后的结果以下错误:使用ngRepeat时的错误。设置复选框和单选按钮以错误的方式检查
我有用户对象名单如下:
$scope.users = [
{
id: 1,
name: 'John',
birthday: '06.07.2008',
city: 'Budapest',
active: false,
boss: false
},
{
id: 2,
name: 'Mary',
birthday: '01.02.2003',
city: 'Berlin',
active: true,
boss: true
},
{
id: 3,
name: 'James',
birthday: '04.05.2006',
city: 'Vienna',
active: false,
boss: false
}
];
功能是检查每个用户二者的状态:
$scope.isActive = function (id) {
return $scope.users[id].active;
}
$scope.isBoss = function (id) {
console.log(id);
return $scope.users[id].boss;
}
实际的模板(视图):
<tbody>
<div>
<tr ng-click="goToProfile(user.id)" ng-repeat="user in users">
<td>{{user.id}}</td>
<td>{{user.name}}</td>
<td>{{user.birthday}}</td>
<td>{{user.city}}</td>
<td>
<input type="checkbox" name="active" ng-checked="{ checked: isActive($index) }">
<h1>{{isActive($index)}}</h1>
</td>
<td>
<input type="radio" name="boss" ng-checked="{ checked: isBoss($index) }">
<h1>{{isBoss($index)}}</h1>
</td>
</tr>
</div>
</tbody>
我d一个测试打印,以确保它正确地读取所需的字段。您可以在屏幕截图和代码中看到的实际结果。提前致谢!
我从来没有见过使用ng-checked之前。查看文档[“设置元素上的checked属性,如果ngChecked中的表达式是真的。”](https://docs.angularjs.org/api/ng/directive/ngChecked),我想你不应该'没有一个对象作为你的表达,只是你的函数调用。然后单选按钮不会全部被检查,因为这是单选按钮的行为,一次只允许检查一个组。 – raichu
@raichu我知道单选按钮输入的实际行为。首先阅读问题。你的答案也解决了这个问题。为问题创建新的答案,以便将其标记为正确的答案。 –
我会让@角色在@ atcastroviejo的回答中做它的工作。 – raichu