[英]Angular2 ngModel select
I don't have idea how would i put selected value to Object or to Array, if i select first selector levelNum value will have object with first selected and if i select second it will have two different number inside for seperated selectors but still same ngModel name. 我不知道如何将选择的值放置到对象或数组中,如果我选择第一个选择器级别,则Num值将选择第一个选择器,如果选择第二个,分离的选择器内部将有两个不同的数字,但仍为ngModel名称。 I need this way for dynamic selectors which i get from ng-for. 我需要这种方式用于ng-for的动态选择器。 Here is my code: 这是我的代码:
//our root app component
import {Component, Directive, Output, EventEmitter, Input, SimpleChange} from 'angular2/core'
import {Observable} from 'rxjs/Observable';
import {Observer} from 'rxjs/Observer';
//import 'rxjs/Rx';
@Component({
selector: 'my-app',
template:`
<h1>Selecting Number</h1>
<select type="number" [(ngModel)]="levelNum" (ngModelChange)="toNumber()">
<option *ngFor="let level of levels" [ngValue]="level.num">{{level.name}}</option>
</select>
<select type="number" [(ngModel)]="levelNum" (ngModelChange)="toNumber()">
<option *ngFor="let level of levels" [ngValue]="level.num">{{level.name}}</option>
</select>
{{levelNum}}
`,
})
export class AppComponent {
levelNum: any;
levels:Array<Object> = [
{num: 0, name: "AA"},
{num: 1, name: "BB"}
];
toNumber(){
this.levelNum = +this.levelNum;
console.log(this.levelNum);
}
}
I don't understand your problem properly, but maybe this plunker will help you: 我无法正确理解您的问题,但也许此助您一臂之力将为您提供帮助:
https://plnkr.co/edit/sGvWZoaP5EWDkkUJE0R2?p=preview https://plnkr.co/edit/sGvWZoaP5EWDkkUJE0R2?p=preview
//our root app component
import {Component, NgModule} from '@angular/core'
import {BrowserModule} from '@angular/platform-browser'
@Component({
selector: 'my-app',
template: `
<div>
<h2>Hello {{name}}</h2>
<select (change)="levelChanged('uniqueName1', $event.target.value)">
<option *ngFor="let lvl of _levels" [value]="lvl.value">{{lvl.name}}</option>
</select>
Selected Level1: {{_selectedLevel['uniqueName1']}}
<br />
<select (change)="levelChanged('uniqueName2', $event.target.value)">
<option *ngFor="let lvl of _levels" [value]="lvl.value">{{lvl.name}}</option>
</select>
Selected Level2: {{_selectedLevel['uniqueName2']}}
<br /><br />
Selected Level-Array:
<br /><br />
{{_selectedLevel | json}}
</div>
`,
})
export class App {
const _levels = [
{ value: 0, name: "AA" },
{ value: 1, name: "BB" },
{ value: 2, name: "CC" },
{ value: 3, name: "DD" },
];
private _selectedLevel = {};
constructor() {
this.name = 'Angular2'
}
levelChanged(name: string, lvl: any) {
this._selectedLevel[name] = +lvl;
}
}
@NgModule({
imports: [ BrowserModule ],
declarations: [ App ],
bootstrap: [ App ]
})
export class AppModule {}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.