【发布时间】:2017-01-16 04:12:03
【问题描述】:
我不知道如何将选定的值放入对象或数组中,如果我选择第一个选择器 levelNum 值将具有第一个选择的对象,如果我选择第二个它将有两个不同的数字用于单独的选择器但是仍然是相同的 ngModel 名称。对于从 ng-for 获得的动态选择器,我需要这种方式。这是我的代码:
//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);
}
}
【问题讨论】:
-
在 toNumber 函数中检查 this.levelNum 是什么类型的对象
-
如果我将变量类型更改为数组仍然是同样的问题,它总是从任何选择器中获取最后一个选定的项目,但它应该将选定的值推送到对象..
-
你能提供你的代码吗?您意识到您正在从代码更新 ngModel?
标签: angular