如何知道我的单选按钮是否已被选中? AngularJS

时间:2014-09-11 14:37:36

标签: html angularjs checkbox radio-button

伙计我做了一个代码,知道我的复选框是否已经检查并且工作正常:

HTML:

<div ng-app>
<div ng-controller="UserController">
    <table id="tblUsers" class="Table">
        <thead>
            <tr>
                <th></th>
                <th>Name</th>
                <th>Last Name</th>
                <th>Phone</th>
            </tr>
            <tr ng-repeat="user in users">

                <td><input type="checkbox" ng-model="user.checked"/></td>
                <td>{{user.name}}</td>
                <td>{{user.lastName}}</td>
                <td>{{user.phone}}</td>
            </tr>
    </table>

 </div>   

这是Angularjs代码:

function UserController($scope) {
$scope.users = [{ checked: false, name: 'Jorge', lastName: 'Martinez', phone: 012345 },
{ checked: false, name: 'Juan', lastName: 'Perez', phone: 78964 }];

$scope.updateUser = function () {
    angular.forEach($scope.users, function (user) {
        if (user.checked) {
            user.name = $scope.nameUpdate;
            user.lastName = $scope.lastNameUpdate;
            user.phone = $scope.phoneUpdate;
        }
    });
};

}

问题是当我更改单选按钮的复选框时:

<td><input type="radio" ng-model="user.checked"/></td>

当我这样做时,这个值&#34; if(user.checked)&#34;显示为&#34;未定义&#34;。 有人知道如何解决这个问题或如何知道AngularJS控制器中是否检查了单选按钮。

2 个答案:

答案 0 :(得分:0)

请参阅https://docs.angularjs.org/api/ng/input/input%5Bradio%5D

你想要有多个单选按钮,每个按钮都有自己的值来设置一些属性(虽然这很奇怪,是的,你最好用一个复选框,但如果你有多个值这就是单选按钮的工作方式)

<input type="radio" ng-model="user.checked" ng-value="true" />Yes
<input type="radio" ng-model="user.checked" ng-value="false" />No

当你只有一个单选按钮时,如果没有默认选中它或你没有ng值它将是未定义的,但也只有一个单选按钮,你永远不能取消选择它。

答案 1 :(得分:0)

您需要为单选按钮指定一个值。

<td><input type="radio" ng-model="user.checked" value="true"/></td>
<td><input type="radio" ng-model="user.checked" value="false"/></td>

Working Fiddle