2017-07-25 51 views
0

我想使一些單選按鈕工作,但Angular抱怨「名稱」屬性。角(4.x):不能使用相同的名稱屬性的單選按鈕

<form> 
    <div> 
     <h3>Select building</h3> 
     <h4>Building search</h4> 
     <label for="criteria">Search criteria:</label> 

     <input class="radio-input" type="radio" name="building-search-criteria" [(ngModel)]="build_search_criteria" [value]="id" id="id"> 
     <label class="radio-label" for="id">ID</label> 

     <input class="radio-input" type="radio" name="building-search-criteria" [(ngModel)]="build_search_criteria" [value]="name" id="name"> 
     <label class="radio-label" for="nombre">Name</label> 
    </div> 
</form> 

爲了使按鈕的工作收音機,他們必須共享相同的name屬性,但貌似角不喜歡:

If ngModel is used within a form tag, either the name attribute must be set or the form 
     control must be defined as 'standalone' in ngModelOptions. 

     Example 1: <input [(ngModel)]="person.firstName" name="first"> 
     Example 2: <input [(ngModel)]="person.firstName" [ngModelOptions]="{standalone: true}"> 

build_search_criteria是一個字符串變量。如果我明白了,由於它與模型綁定,所以它的值由所選單選按鈕的value屬性定義。

如何使單選按鈕有效?謝謝。

+0

嘗試使用'building-search-criteria []' – Hackerman

+0

您不需要模板中的值屬性。用ngModel完成的雙向綁定會照顧更新。 –

回答

0

使用value而不是[value]。因爲[value]期望變量。並且是的,它沒有給我任何ngModel相關的錯誤,它不應該。

<form> 
    <div> 
    <h3>Select building</h3> 
    <h4>Building search</h4> 
    <label >Search criteria:</label> 
    <label class="radio-label" for="id">ID</label> 
    <input class="radio-input" type="radio" name="building-search-criteria" 
     [(ngModel)]="build_search_criteria" 
     value="id" 
     id="id"> 

    <label class="radio-label" for="name">Name</label> 

    <input class="radio-input" type="radio" 
name="building-search-criteria" [(ngModel)]="build_search_criteria" 
    value="name" id="name"> 
</div> 
</form> 
+0

是的,事實上,它似乎不是造成麻煩的單選按鈕。這是單選按鈕後面的文本字段,它具有缺少''''屬性,但由於某種原因(空行刪除?),控制檯向我顯示單選按鈕行號。我檢查了這個與我的代碼比較,評論單選按鈕代碼並運行組件...錯誤仍然存​​在!然後我發現了真正的罪魁禍首。感謝您的幫助。 – aerojas

相關問題