【发布时间】:2017-06-15 11:41:25
【问题描述】:
我创建了一个处理选择框的组件,现在当我在提交表单后将它放入表单标签时,选择的结果不会显示在控制台中。
我的代码有什么问题?我该如何解决这个问题?
- testOption: 是我传递的对象数组,用
@Input抛出选择框。
这里是选择框组件:
import { Component, OnInit, Input } from '@angular/core';
@Component({
selector: 'input-select',
template:`
<div class="field-select">
<span><icon name="select-arrow" size="10"></icon></span>
<select name="{{name}}" class="field">
<option value="0" disabled selected>{{label}}</option>
<option *ngFor="let option of options" [ngValue]="option.value">{{option.name}}</option>
</select>
</div>
`
})
export class InputSelectComponent implements OnInit {
@Input() label: string;
@Input() name: string;
@Input() options;
// testOptions = [
// {value:'test',name:'test2'},
// {value:'test',name:'test2'}
// ];
constructor() { }
ngOnInit() {
console.log(this.options);
}
}
在html中的使用:
<input-select label="test" name="select2" [options]="testOption"></input-select>
表单 html:
<form role="form" class="form" #f="ngForm" (ngSubmit)="onSubmit(f)">
<input class="field" name="name" ngModel type="text" placeholder="n1">
<input-select label="b2" name="select2" [options]="testObject"></input-select>
<input class="field" name="building-type" type="text" ngModel placeholder="b3">
</form>
控制台日志:(没有选择框值)
Object {name: "test", building-type: "tset" }
【问题讨论】:
-
你说的是
testOption和testObject。正确的名字是什么? :) 先检查一下.. -
@mxii 正确的名称是 testOption。我的坏:)
-
请显示您的“父”组件。 (模板)
-
它将
undefined记录到控制台?result of selection是什么意思。我没有看到任何可以将结果打印到控制台的代码。 :) -
@mxii 我更新了问题。
标签: angular angular2-template angular2-forms