ng-repeat和重复的单选按钮组

时间:2016-01-29 22:02:39

标签: angularjs

我到处都看到类似的问题,但我仍然无法在这里看到我的错误。 (角度还是有点新鲜)

我有一系列重复的项目,我想为每个项目创建一个广播组,用户为每条重复的行选择一个项目。问题是每个按钮组都不是唯一的。单击任何一个按钮可选择第一个实例。如何使这些组独一无二?

<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>

我没有包含控制器,因为我认为我在按钮或无线电组的名称中缺少一些简单的东西。

由于

1 个答案:

答案 0 :(得分:0)

您可以在Developer工具中看到,在呈现视图时,id,name和其他属性的Parsers0 + $ index不会被index替换。因此,所有渲染的单选按钮都在一个组名Parsers0 + $ index下,因此这些组不是唯一的。在您的情况下更正索引值的正确语法是
    Parsers0{{$index}}  这应该让你的团队独一无二。 这是掠夺者 https://plnkr.co/edit/IIPnjXnH5aKptyZ7e47T?p=preview