使用NG-repeat制作带有多个单选按钮的表单:想要重置所有单选按钮的值

时间:2015-06-05 08:43:58

标签: javascript html angularjs radio-button ng-repeat

我对Angular有一个问题;我有多个演员,每个演员都有一个放射性的形式有三种选择:受害者,观察者和两者。

相关模板:

        <div class="actor" ng-repeat="activeActor in activeActors">                                                 
          <p class="category">{{activeActor}}</p>
          <form name="radioButtonForm">
            <div class="causerRadioForm">
              <input type="radio" name="causerRadio" value="victum" ng-model="defaultRadioButton" ng-click="setActorCauser(activeActor, 'victum')">
            </div>

            <div class="causerRadioForm">
              <input type="radio" name="causerRadio"  value="causer" ng-model="defaultRadioButton" ng-click="setActorCauser(activeActor, 'causer')">
            </div>

            <div class="causerRadioForm">
              <input type="radio"  name="causerRadio" value="both" ng-model="defaultRadioButton" ng-click="setActorCauser(activeActor, 'both')">
            </div>

          </form>

        </div>

这很好但是我有一个按钮,如果我点击它,会有多个actor(称为fastActors)被渲染并且默认值为victum。

问题在于,当我选择一个演员时,例如将其置于观察者然后点击fastActors时,单选按钮会保持警告状态,而单选按钮应重置为victum。

相关JS

$scope.toggleFastTraffic = function(actor){
  //erase all actors 
  $scope.actors = [];
  $scope.report.traffic_players = [];
  //default value for radio boxes
  $scope.defaultRadioButton = "victum";


  $scope.SlowTraffic = false;
  $scope.FastTraffic = true;
  $scope.formOptionsExpanded = true;
  $scope.activeActors = [];

  var i = $scope.activeActors.indexOf(actor);
  console.log($scope.activeActors.indexOf(actor));
  if ($scope.counter === -1){

   //do more here
}

基本上我按下toggleFastActor的那一刻我希望让所有的单选按钮成为可能。

友好的问候, Ť

P.S。我知道我为了保持这个命令而得到的胜利错字:P

这是一个快速的编码器,它还没有完成,但它确实包含了这个错误:如果你按下汽车并使其成为一个警告,然后切换快速交通,汽车将在报告中转到受害者(这很好),但是单选按钮不会改变。

P.s codepen还有其他一些错误,也没有必要注意那些。

http://codepen.io/CMD-Thomas/pen/yNbNaZ?editors=101

1 个答案:

答案 0 :(得分:1)

这是因为ng-model值相同。设置&#39; defaultRadioButton&#39;的值后到了&#39; causer&#39;对所有人来说,它将继续保持谨慎。记住MVVM模式