【发布时间】:2017-11-02 03:10:03
【问题描述】:
我有一个简单的组件,它没有设置 select 的值,而是用 HTML 编写值
<select name="select1" ngModel id="s1" class="form-control">
<option value="Item 1">Item 1</option>
<option value="Item 2">Item 2</option>
<option value="Item 3" selected>Item 3</option>
<option value="Item 4">Item 4</option>
<option value="Custom Item 1">Custom Item 1</option>
</select>
所选选项的值为Item 3,但当我打开我的页面时,该值不会显示。如果没有ngModel,它会显示出来。
当我按下重置按钮时也会显示它(只需输入type="reset")。
复选框、单选按钮和简单的文本输入也有同样的问题,但在这种情况下,我使用 checked 显示单选按钮和复选框的默认值,并在文本输入的情况下设置 value="default value"。
这是ts 文件。
import { Component, OnInit, Output, Input, EventEmitter } from '@angular/core';
import {NgForm} from '@angular/forms';
@Component({
selector: 'app-sidebar',
templateUrl: './sidebar.component.html',
styleUrls: ['./sidebar.component.css']
})
export class SidebarComponent implements OnInit {
@Input() show: boolean;
@Output() hideFiltersEvent = new EventEmitter();
constructor() { }
ngOnInit() {
}
onSubmit(aForm: NgForm){
console.log(aForm);
}
onHideFilters(){
this.hideFiltersEvent.emit();
}
}
这个文件里有一些方法,但它们与设置或重置表单控件无关。
如果可能的话,如何在不删除ngModel 的情况下显示表单控件的默认值,以及为什么会发生这一切?
【问题讨论】: