【问题标题】:angularjs score counter not working [closed]angularjs分数计数器不工作[关闭]
【发布时间】:2015-09-25 03:46:47
【问题描述】:

请看一下这个。

http://plnkr.co/edit/i4B0Q2ZGiuMlogvwujpg?p=preview

<input type="radio" name="op_0" ng-value="true" ng-model="n1"> True
<input type="radio" name="op_0" ng-value="false" ng-model="n2"> False
<input type="radio" name="op_0" ng-value="true" ng-model="n3"> True
<input type="radio" name="op_0" ng-value="false" ng-model="n4"> False

为什么单击一下就选中了两个单选按钮? 为什么分值不增加或减少?

【问题讨论】:

  • 为什么ng-model 对所有人都一样?
  • 所有四个按钮都绑定到同一个模型。这是为什么呢?
  • 除了已经创建的 cmets 之外,您的控制器中的 if 语句会在第一次调用控制器时进行评估,仅此而已。您需要点击单选按钮的事件来增加分数。
  • 已编辑。但是为什么分值没有增加? plnkr.co/edit/i4B0Q2ZGiuMlogvwujpg?p=preview

标签: javascript angularjs counter


【解决方案1】:

要将所有单选按钮放在同一个组中,它们都应该具有相同的名称。这是每个人应该不同的价值。如果它们的名称不同,则选择一个不会导致其他取消选择。

app.controller('aCtrl', function($scope) {

  $scope.s = 0;

  $scope.updateScore = function(val){
    if(val == 'true'){
      $scope.s += 1;
    }
    if(val == 'false'){
      $scope.s += -0.5;
    }
  }

});

 <div class="col-md-5 col-xs-8">
        <input type="radio" ng-click="updateScore('true')" name="op_0" ng-value="true" ng-model="n1"> True
        <input type="radio" ng-click="updateScore('false')" name="op_0" ng-value="false" ng-model="n2"> False
        <input type="radio" ng-click="updateScore('true')" name="op_0" ng-value="true" ng-model="n3"> True
        <input type="radio" ng-click="updateScore('false')" name="op_0" ng-value="false" ng-model="n4"> False
      </div>

【讨论】:

猜你喜欢
  • 2014-06-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多