我到处都看到类似的问题,但我仍然无法在这里看到我的错误。 (角度还是有点新鲜)
我有一系列重复的项目,我想为每个项目创建一个广播组,用户为每条重复的行选择一个项目。问题是每个按钮组都不是唯一的。单击任何一个按钮可选择第一个实例。如何使这些组独一无二?
<div ng-repeat="obj in availableText track by obj.id" class="possibleTextBlock">
<div ng-class="obj.textClass" ng-click="handleText(obj.id)">{{obj.text}}</div>
<div class="parseOptionLine">
<radiogroup id="$index">
<div class="parseOption"><input type="radio" id="Parsers0+$index" name="parseAdd+$index" ng-model="obj.parser" ng-value="Parsers[0]"><label for="Parsers0+$index"><span></span>{{Parsers[0]}}</label></div>
<div class="parseOption"><input type="radio" id="Parsers1+$index" name="parseAdd+$index" ng-model="obj.parser" ng-value="Parsers[1]"><label for="Parsers1+$index"><span></span>{{Parsers[1]}}</label></div>
<div class="parseOption"><input type="radio" id="Parsers2+$index" name="parseAdd+$index" ng-model="obj.parser" ng-value="Parsers[2]"><label for="Parsers2+$index"><span></span>{{Parsers[2]}}</label></div>
<div class="parseOption"><input type="radio" id="Parsers3+$index" name="parseAdd+$index" ng-model="obj.parser" ng-value="Parsers[3]"><label for="Parsers3+$index"><span></span>{{Parsers[3]}}</label></div>
<div class="parseOption"><input type="radio" id="Parsers4+$index" name="parseAdd+$index" ng-model="obj.parser" ng-value="Parsers[4]"><label for="Parsers4+$index"><span></span>{{Parsers[4]}}</label></div>
</radiogroup>
</div>
</div>
我没有包含控制器,因为我认为我在按钮或无线电组的名称中缺少一些简单的东西。
由于
答案 0 :(得分:0)
您可以在Developer工具中看到,在呈现视图时,id,name和其他属性的Parsers0 + $ index不会被index替换。因此,所有渲染的单选按钮都在一个组名Parsers0 + $ index下,因此这些组不是唯一的。在您的情况下更正索引值的正确语法是
Parsers0{{$index}}
这应该让你的团队独一无二。
这是掠夺者
https://plnkr.co/edit/IIPnjXnH5aKptyZ7e47T?p=preview