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