从Angular 4中的选择选项中获取价值

Jos*_*eph 25 angular-directive angular angular4-forms

如何从Angular 4中的select选项中获取值?

我想将它分配给component.ts文件中的新变量.我试过这个,但没有输出.

你也可以用[(ngModel)]吗?

component.html

<form class="form-inline" (ngSubmit)="HelloCorp(f)" #f="ngForm">
     <div class="select">
         <select class="form-control col-lg-8" #corporation required>
             <option *ngFor="let corporation of corporations" [value]="corporationObj">{{corporation.corp_name}}</option>    
         </select>
             <button type="submit" class="btn btn-primary manage">Submit</button>
     </div>
</form>
Run Code Online (Sandbox Code Playgroud)

component.ts

HelloCorp() {
const corporationObj = corporation.value;
}
Run Code Online (Sandbox Code Playgroud)

mah*_*val 36

作为一般人(请参阅Stackblitz:https://packblitz.com/edit/angular-gh2rjx ):

HTML

<select [(ngModel)]="selectedOption">
   <option *ngFor="let o of options">
      {{o.name}}
   </option>
</select>
<button (click)="print()">Click me</button>

<p>Selected option: {{ selectedOption }}</p>
<p>Button output: {{ printedOption }}</p>
Run Code Online (Sandbox Code Playgroud)

打字稿

export class AppComponent {
  selectedOption: string;
  printedOption: string;

  options = [
    { name: "option1", value: 1 },
    { name: "option2", value: 2 }
  ]
  print() {
    this.printedOption = this.selectedOption;
  }
}
Run Code Online (Sandbox Code Playgroud)

在您的特定情况下,您可以像这样使用ngModel:

<form class="form-inline" (ngSubmit)="HelloCorp()">
     <div class="select">
         <select [(ngModel)]="corporationObj" class="form-control col-lg-8" #corporation required>
             <option *ngFor="let corporation of corporations"></option>    
         </select>
         <button type="submit" class="btn btn-primary manage">Submit</button>
     </div>
</form>

HelloCorp() {
  console.log("My input: ", corporationObj);
}
Run Code Online (Sandbox Code Playgroud)


Ale*_*riz 13

export class MyComponent implements OnInit {

  items: any[] = [
    { id: 0, name: 'one' },
    { id: 1, name: 'two' },
    { id: 2, name: 'three' },
    { id: 3, name: 'four' },
    { id: 4, name: 'five' },
    { id: 5, name: 'six}' }
  ];
  selected: number = 0;

  constructor() {
  }
  
  ngOnInit() {
  }
  
  selectOption(id: number) {
    //getted from event
    console.log(id);
    //getted from binding
    console.log(this.number)
  }

}
Run Code Online (Sandbox Code Playgroud)
<div>
  <select (change)="selectOption($event.target.value)"
  [(ngModel)]="selected">
  <option [value]="item.id" *ngFor="let item of items">{{item.name}}</option>
   </select>
</div> 
Run Code Online (Sandbox Code Playgroud)

  • 这是一个纯代码答案,在 StackOverflow 中不被认为是非常好的质量。请详细说明此代码段的作用以及为什么它有助于解决原始问题。 (2认同)
  • 小更正:selectOption 函数中的第二行不应该是`console.log(this.selected);`(用“selected”替换“number”)? (2认同)

Plo*_*log 6

你只需要添加[(ngModel)]你的选择元素:

<select class="form-control col-lg-8" #corporation required [(ngModel)]="selectedValue">
Run Code Online (Sandbox Code Playgroud)

  • 如何在 component.ts 中分配值? (2认同)

小智 5

HTML代码

    <form class="form-inline" (ngSubmit)="HelloCorp(modelName)">
        <div class="select">
            <select class="form-control col-lg-8" [(ngModel)]="modelName" required>
                <option *ngFor="let corporation of corporations" [ngValue]="corporation">
                    {{corporation.corp_name}}
                </option>    
            </select>
            <button type="submit" class="btn btn-primary manage">Submit</button>
        </div> 
    </form>
Run Code Online (Sandbox Code Playgroud)

组件代码

HelloCorp(corporation) {
    var corporationObj = corporation.value;
}
Run Code Online (Sandbox Code Playgroud)