Angularjs多个单选按钮,如果只有一个,则自动选择

时间:2014-07-31 19:37:04

标签: angularjs radio-button ng-repeat

成功构建了多个相关单选按钮的angularjs应用程序。

但是如果只有一个单选按钮,则要求默认选择一个单选按钮。

尝试了Angularjs: radio button checked中的内容,但它不适用于多个单选按钮。

代码说明:

HTML代码: 我有两个单选按钮。第二组单选按钮基于第一组生成。

<div>
            <ul >
              <li> Part One : </li>
                        <li ng-repeat="f in Input"><input type="radio" name="oneInput" ng-value="f" ng-model="$parent.One">&nbsp;{{f.Name}}&nbsp;</input></li>
    </ul>
    </div><br/>
    <div>
              <ul>
                  <li> Part Two : </li>
                  <li ng-repeat="u in filteredUser = (One.User | filter: { Valid: 'Y' })"><input type="radio" name="userInput" ng-value="u" ng-model="$parent.Two">&nbsp;{{u.Name}}&nbsp;</input></li>
            </ul>
    </div><br/>

如果我在第一组中选择一个单选按钮,而第二组只有一个单选按钮,则默认情况下必须选中它。

例如,如果我选择D,我会得到必须选择的D2单选按钮。

完整代码@ http://plnkr.co/edit/dY2syxNWobxHpiVKIuux?p=preview

感谢您的回复。

1 个答案:

答案 0 :(得分:3)

请参见此处:http://plnkr.co/edit/QVvN6rP3wlyxbOJaAGHQ?p=preview

 $scope.$watch('One', function(value) {

    if (value.Name) {

      var users = $filter('filter')($scope.Input, value);

      var vaildUsers = $filter('filter')(users[0].User, {
        Valid: "Y"
      });


      if (vaildUsers.length == 1) {

        $scope.Two = vaildUsers[0];

      } else

      {

        $scope.Two = {};

      }
    }

  });