0

单选按钮的多套我很新的角度和我有设置我的单选按钮默认选项的一些问题。我已经检查了其他答案,并且使用$parent不能解决我的问题,或者我错误地使用了它。与NG-模型和NG-重复

我有一个基团含有2个输入的单选按钮的:

input type="radio" name="@{{ form.form_id }}[email protected]{{ $index }}" ng-model="$parent.field.field_data.suggested" value="@{{ field.field_data.value_a}}" > @{{ field.field_data.value_a }} <br> 
input type="radio" name="@{{ form.form_id }}[email protected]{{ $index }}" ng-model="$parent.field.field_data.suggested" value="@{{ field.field_data.value_b }}"> @{{ field.field_data.value_b }} 

如果单选按钮的页面显示仅1组(对)中,正确地设定了单选按钮组默认值。这里的问题是,当有3组(3对)由ng-repeat生成的单选按钮时,它只设置最后一组单选按钮的值,其他2组不选中或为空。

这是因为单选按钮是使用2 ng重复生成的吗?为了帮助,这里是我的代码。

我有一个数组$scope.filtered_forms其通过设置:

$scope.filtered_forms[index] = { 
     form_id:id, 
     fields:[{ 
      field_data: {field.label, 
          field_suggested:string, 
          value_a:string, 
          value_b:string}, 
      field_type: radio 
      },{ 
      field_data: {field.label, 
          field_suggested:string, 
          value_a:string, 
          value_b:string}, 
      field_type radio 
      },{ 
       ...same input as above each object represents a group of radio 
      }] 
} 

基本上,$scope.filtered_forms包含形式的对象。在我的html文件,我有这样的:

<div ng-repeat="form in filtered_forms" id="@{{ form.form_id }}"> 
<table class="table" id="borderless"> 
     <tr ng-repeat="field in form.fields"> 
       <th scope="row" width="35%">@{{ field.field_data.label }}</th> 
       <td> 
        <div ng-if="field.field_type == 'radio'" style="margin-bottom: 10px"> 
         <input type="radio" name="@{{ form.form_id }}[email protected]{{ $index }}" ng-model="$parent.field.field_data.suggested" value="@{{ field.field_data.value_a}}" > @{{ field.field_data.value_a }} <br> 
         <input type="radio" name="@{{ form.form_id }}[email protected]{{ $index }}" ng-model="$parent.field.field_data.suggested" value="@{{ field.field_data.value_b }}"> @{{ field.field_data.value_b }} 
        </div> 
       </td> 
     </tr> 
    /table> 

这在这里产生2组/对单选按钮,但只有在最后一组获得一个默认值。即使使用ng检查,甚至没有$父母。

其他信息,field_suggested具有与value_a或value_b相同的值。您可以看到单选按钮在2 ng重复下。我使用的是laravel blade,这个html文件在一个模式中。我删除了一些与问题无关的HTML数据和属性。

任何帮助表示赞赏。

谢谢!

+0

查看你的代码我猜你在第二次ng-repeat时,因为你在为每个索引遍历form.fields,它会创建两个具有相同名称,模型等的收音机是你想要的吗? –

+0

@nikhilmehta是的,它将创建2个具有相同名称和型号的收音机,这将是1组/一对单选按钮。当我收到3组收音机时,默认情况下只设置最后一组。 – NewbieLearner

回答

0

你似乎有混合很多东西。我复制了你的代码创建了一个plunker,并发现radio组的名称实际上并不是form_id _ {{$ index}},但是它具有整个对象作为字符串。我已经改变了代码希望它可以帮助你。 看到代码here 问题是你为什么要在名称中使用@您的组名。请删除它应该工作正常。另请参阅名称属性的值中没有特殊字符。

name="{{ form.form_id }}_{{ $index }}" 
+0

嘿,我加@的原因是,当处理laravel blade时,{{value}}引用了一个php变量。为了调用角度js变量,它需要@ {{value}}。 – NewbieLearner

+0

在这种情况下,您在开发工具的单选按钮的名称,如果它包含任何特殊字符,如果是可能是你得到你所遇到的行为的原因。如果不包含它包含什么? –

+0

我会检查出来。但目前,使用我的代码它会显示'name =“26_1”'。 – NewbieLearner