【发布时间】:2018-05-22 19:05:36
【问题描述】:
我尝试将输入中的字符串推送到数组中,这样在我可以将该数组分配给<select> 之后,每个<option> 应该是输入中的一个字符串。这是我到目前为止所做的,这是我得到的错误,我不知道该怎么做,因为我找不到一些关于 Angular 数组的可靠信息,只有硬编码示例我想为我提供一个示例,我该怎么做这样做。
这是我的 HTML 代码,其中我只有一个输入来添加玩家的名字
<div class="addplayer">
<form (submit)="onSubmit()" #formName="ngForm">
<h2>Add a new player</h2>
<div class="form-group">
<input type="text" class="form-control" placeholder="e.g.Jimbo"
[(ngModel)]="name" name="name" id="name" #name="ngModel" required>
{{model.name}}
</div>
<button type="submit" class="btn btn-success" [disabled]="!formName.form.valid">Add Player</button>
</form>
这是我的 ts 文件,其中包含函数 onSubmit(),我尝试将输入中的名称推送到数组中
import { Component, OnInit } from '@angular/core';
import { AddPlayer } from './add-player';
@Component({
selector: 'app-add-player',
templateUrl: './add-player.component.html',
styleUrls: ['./add-player.component.css']
})
export class AddPlayerComponent{
name:string = "";
onSubmit() {
this.listOfNames.push(this.name)
console.log(this.listOfNames);
}
}
这是另一个带有构造函数的 ts 文件
export class AddPlayer {
constructor(
public listOfNames: string[] = []
){}
}
【问题讨论】:
-
AddPlayerComponent没有listOfNames属性,因此不清楚您认为this.listOfNames在该类中会做什么。 -
AddPlayer类并没有真正在您的代码中的任何地方使用,并且使问题令人困惑。您可以尝试将this.name添加到局部变量中。正如@jonrsharpe 提到的那样,只需事先声明变量即可。