【问题标题】:Set the value of a nested radio button设置嵌套单选按钮的值
【发布时间】:2019-12-19 02:38:21
【问题描述】:

我在 ng-repeat 中有很多单选按钮列表。 我已成功获取所选项目。 现在我尝试设置收音机的默认值。 有人能帮助我吗。这是我的按钮代码。 谢谢

VariableRadioArr2 = [{"id":"21","libelle":"P15m","type":"radio","valeur_1":"Oui","valeur_2":"Non","valeur_3":"","valeur_4":"","valeur_5":"","valeur_6":"","valeur_7":"","valeur_8":"","valeur_9":"","valeur_10":""},{"id":"25","libelle":"Surface (m²)","type":"input","valeur_1":"","valeur_2":"","valeur_3":"","valeur_4":"","valeur_5":"","valeur_6":"","valeur_7":"","valeur_8":"","valeur_9":"","valeur_10":""},{"id":"36","libelle":"p16","type":"radio","valeur_1":"Oui","valeur_2":"Non","valeur_3":"","valeur_4":"","valeur_5":"","valeur_6":"","valeur_7":"","valeur_8":"","valeur_9":"","valeur_10":""}]

$scope.itemGroups = VariableRadioArr2;
console.log(VariableRadioArr2);
//$scope.selected = 1;
$scope.VariableRadioToggle2 = true;

$scope.clickedVariableRadio2 = function(test)
{
    $scope.clickedVariableRadio2_select = JSON.parse(JSON.stringify($scope.itemGroups));
}

if(VariableRadioArr2.length == 0) 
{
    $scope.clickedVariableRadio2_select = [];
    $scope.VariableRadioToggle2 = false;
}
<ion-list id="page-list7" ng-show="VariableRadioToggle2">
   <div ng-repeat="itemGrp in itemGroups">
      <ion-item class="item-divider" id="page-list-item-divider32">{{itemGrp.name}}</ion-item>
      <ion-toggle name="{{itemGrp.name}}" ng-click="clickedVariableRadio2(portion.selected)" ng-repeat="(key,portion) in itemGrp.Portions" ng-model="itemGrp.selected_item" ng-true-value="'{{key}}'" ng-false-value="">{{portion.name}}</ion-toggle>
   </div>
</ion-list>

【问题讨论】:

  • itemGrp.selected_item 应该是默认值。
  • 感谢您的快速回答。我怎样才能做到这一点 ?我在 ng-repeat div 中尝试过 ng-init="itemGrp.selected_item" 。我已经在 ion-toggle div 中尝试了 ng-init="itemGrp.selected_item" / ng-value="itemGrp.selected_item" / ng-checked="itemGrp.selected_item" ...但是有什么用吗?控制器部分还有其他事情要做吗?
  • 您可以修改VariableRadioArr2 以将单选选项作为子数组吗? [{"id":"21","libelle":"P15m","type":"radio", "values": [{"value": "name",..}]},..]

标签: javascript angularjs ionic-framework


【解决方案1】:

这里我从 1-10 循环,将值复制到新对象中并删除旧对象。

var myApp = angular.module('myApp',[]);
function MyCtrl($scope) {
    var Variable = [{"id":"21","libelle":"P15m","type":"radio","valeur_1":"Oui","valeur_2":"Non","valeur_3":"","valeur_4":"","valeur_5":"","valeur_6":"","valeur_7":"","valeur_8":"","valeur_9":"","valeur_10":""},{"id":"25","libelle":"Surface (m²)","type":"input","valeur_1":"","valeur_2":"","valeur_3":"","valeur_4":"","valeur_5":"","valeur_6":"","valeur_7":"","valeur_8":"","valeur_9":"","valeur_10":""},{"id":"36","libelle":"p16","type":"radio","valeur_1":"Oui","valeur_2":"Non","valeur_3":"","valeur_4":"","valeur_5":"","valeur_6":"","valeur_7":"","valeur_8":"","valeur_9":"","valeur_10":""}];

  // Create sub object for all values 
  // and delete the old values
  for (i = 0; i < Variable.length; i++) {
      Variable[i].values = {};
      Variable[i].selected = '';

      for (v = 1; v < 11; v++) {
        if(Variable[i]['valeur_'+v] != undefined){
          Variable[i].values['valeur_'+v] = Variable[i]['valeur_'+v];
          delete Variable[i]['valeur_'+v];
        }
      }
  }
  
  $scope.itemGroups = Variable;
  
  // Set defaults
  // By index
  $scope.itemGroups[1].selected = 'valeur_4';

}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.1/angular.min.js"></script>

<div ng-app="myApp" ng-controller="MyCtrl">
  <div ng-repeat="itemGrp in itemGroups">
    <div>{{itemGrp.libelle}}</div>
    <label ng-repeat="(key, value) in itemGrp.values">
      <input type="radio" name="{{itemGrp.id}}" ng-model="itemGrp.selected" ng-value="key">{{value}}
    </label>
  </div>
</div>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-22
    • 2014-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-28
    • 1970-01-01
    • 2011-07-02
    相关资源
    最近更新 更多