2017-07-25 8 views
0

ラジオボタンをいくつか作ろうとしていますが、Angularは "name"属性について不平を言っています。ボタンが正しく動作しラジオを作るために角(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

テンプレートにはvalue属性は必要ありません。 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

はい、実際には、問題を引き起こしていたラジオボタンではなかったようです。 'name'属性がないラジオボタンに続くテキストフィールドでしたが、何らかの理由で(空白行が削除されましたか?)、コンソールはラジオボタンの行番号を表示していました。私はこのコードを私のコードと比較してチェックし、ラジオボタンのコードをコメントしてコンポーネントを実行しました...エラーはまだそこにありました!それから私は本当の犯人を見つけました。ご協力ありがとうございました。 – aerojas

関連する問題