1

我正在使用来自 angular2-materialize 的 Datepicker,它基于 Pickadate,并且我需要向服务器发送与向用户显示的值不同的值。经典案例。为此,Pickadate 提供了一个选项:formatSubmit,它创建一个隐藏的输入来保存该内部值。我什至可以让这个输入与我的主输入具有相同的名称(带有 hiddenName 参数)。

<input type="date" id="dateOfEvent" name="dateOfEvent" 
       [(ngModel)]="claimFile.dateOfEvent" class="datepicker" 
       materialize="pickadate" [materializeParams]="[{format: 'd mmmm yyyy', formatSubmit: 'yyyy-mm-dd', hiddenName: true}]" required />

这会在组件下方生成一个隐藏输入:

<input type="hidden" name="dateOfEvent" value="2016-10-20">

问题是隐藏的输入没有绑定到我的 ng2 模型。我怎样才能做到这一点 ?如果不可能,我怎样才能获得访问隐藏输入值的方法?多谢

4

1 回答 1

1
<input type="hidden" #hidden name="dateOfEvent" value="2016-10-20">
@ViewChild('hidden') hidden:ElementRef;

ngAfterViewInit() {
  console.log(this.hidden.nativeElement.value);
}

如果无法将模板变量添加到隐藏元素

consturctor(private elRef:ElementRef){}

ngAfterViewInit() {
  console.log(this.elRef.querySelector('input[type="hidden"]').value);
}
于 2016-10-19T10:50:49.157 回答