【发布时间】:2018-07-11 13:37:11
【问题描述】:
我有一个二选一的收音机组,我想从中获取一个选定的值并将其作为要导航到的参数之一传递。在我之前的半相关问题中,有人提出了这个解决方案:Angular2 - Radio Button Binding,但我一直在尝试使用它并没有成功:
search.component.html:
<form autocomplete="on" class="form-inline">
<input style="border-color: white; max-width: 300px" name="name" autofocus type="text" #name placeholder="Name..."
class="form-control">
<div class=" btn-group btn-group-toggle" data-toggle="buttons">
<label class="btn btn-toggle active">
<input type="radio" [(ngModel)]="realm" name="realm" [ng-value]="'Feronis'" autocomplete="off" checked> Feronis
</label>
<label class="btn btn-toggle">
<input type="radio" [(ngModel)]="realm" name="realm" [ng-value]="'Angrathar'" autocomplete="off"> Angrathar
</label>
</div>
<button (click)="onSearch(name.value,realm)" class="btn btn-search">
<span class="fa fa-search"></span></button>
我也试过ngValue和value。
search.component.ts:
export class SearchComponent implements OnInit {
realm: string;
onSearch(nameIn: string, realmIn: string) {
console.log(this.realm); // undefined
let nameCase = nameIn.charAt(0).toUpperCase() +
nameIn.slice(1).toLowerCase();
let realmCase = realmIn.charAt(0).toUpperCase() + // realmIn also undefined
realmIn.slice(1).toLowerCase();
this.router.navigate(['/character', realmCase, nameCase])
}}
无法绑定到“ngValue”,因为它不是“输入”的已知属性。
我在 app.module.ts 和 search.component.ts 中也有
import {FormsModule} from "@angular/forms"; 的导入
【问题讨论】:
-
ng-value 不是输入元素的有效属性,您必须以 [value]="expressnion" 或 value="actual-value" 的方式使用 value 属性。
-
@varunsingh 我将复制我的其他评论:当我使用
value="Feronis"执行onSearch(name.value,realm)时,我得到ERROR TypeError: Cannot read property 'charAt' of undefined。 console.log 也未定义
标签: javascript angular input parameters