繁体   English   中英

AngularJS单选按钮ng-repeat值

[英]AngularJS radio buttons ng-repeat value

我正在使用ng-repeat创建单选按钮,并希望所选按钮的名称值显示在下面。

这是我的看法:

<span ng-repeat="weight in weights">
  <input type="radio" name="weight" value="{{weight.name}}" id="weight{{weight.name}}" ng-checked="weight.checked">
  <label for="weight{{weight.name}}">{{weight.name}}</label>
</span>
<p>Weight: {{weight.name}}</p>

这是我的控制器:

$scope.weights = [
  {
    name: 1,
    checked: true
  },
  {
    name: 2,
    checked: false
  },
  {
    name: 3,
    checked: false
  }
];

这是我的柱塞

如何获得粗细显示在段落标签中?

您应该在ng-model之一中保持radio的值并使用$ parent。 在控制器范围而不是像这里的ng-repeat定义它

标记

<body ng-controller="MainCtrl" ng-init="radioValue=1">
  <span ng-repeat="weight in weights">
    <input type="radio" name="weight" ng-model="$parent.radioValue" ng-value="{{weight.name}}" id="weight{{weight.name}}" ng-checked="weight.checked">
    <label for="weight{{weight.name}}">{{weight.name}}</label>
  </span>
  <p>Weight: {{radioValue}}</p>
</body>

工作朋克

答案在于了解$ scope如何在角度中工作。 快速解决方案是使用$ parent.selectedName,其中$ parent指向父范围。 这是因为ng-repeat的每次迭代都会创建其自身的作用域。 (请参阅此处输入链接说明

看到这个https://jsfiddle.net/pankaj01/Xsk5X/3074/ JS是

function MyCtrl($scope) {

$scope.weights = [
  {
    name: 1,
    checked: true
  },
  {
    name: 2,
    checked: false
  },
  {
    name: 3,
    checked: false
  }
];

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM