首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过ng2-bootstrap Timepicker使用新表单

如何通过ng2-bootstrap Timepicker使用新表单
EN

Stack Overflow用户
提问于 2016-08-06 02:50:58
回答 1查看 1.7K关注 0票数 1

我正在创建我自己的组件,它包装了ng2-bootstrap时间选择器组件。由于某些原因,我似乎无法让新的Angular 2 FormControl正常工作,即使使用的是使用@angular/forms的最新版本的组件。

下面是该组件的链接:ng2-bootstrap timepicker

下面是我的代码的一个简单版本:

代码语言:javascript
复制
import { Component, Input, EventEmitter, OnInit } from '@angular/core';

import { FormControl, FORM_DIRECTIVES } from '@angular/forms';
import { TimepickerComponent } from 'ng2-bootstrap/ng2-bootstrap';

@Component({
  selector: 'my-timepicker',
  directives: [ REACTIVE_FORM_DIRECTIVES, TimepickerComponent ],
  template: `
  <div class="well">
    <timepicker
      [(ngModel)]="initialValue"
      [formControl]="timePickerControl"
      [hourStep]="hourStep"
      [minuteStep]="minuteStep"
      [showMeridian]="showMeridian"
      [readonlyInput]="disabled"
      [mousewheel]="mousewheel"
      [arrowkeys]="arrowkeys"
      [showSpinners]="showSpinners"
      [min]="min"
      [max]="max"
    ></timepicker>
  </div>
`
})
export class TimePickerComponent implements OnInit {
  timePickerControl: FormControl;
  initialValue: Date;
  hourStep: number = 1;
  minuteStep: number = 1;
  showMeridian: boolean = true;
  mousewheel: boolean = true;
  arrowkeys: boolean = true;
  showSpinners: boolean = true;
  min: Date;
  max: Date;

ngOnInit() {
  this.initialValue = new Date();
  this.timePickerControl = new FormControl(this.initialValue, Validators.required);
  }
}

这是我在尝试使用该组件时看到的错误:

代码语言:javascript
复制
No provider for NgModel ("
<div class="well">
    [ERROR ->]<timepicker
      [(ngModel)]="initialValue"
      [formControl]="timePickerControl"
")

在我的app.ts中,我确保包含了以下调用:

代码语言:javascript
复制
provideForms()
disableDeprecatedForms()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-10 15:12:55

代码语言:javascript
复制
import { FORM_DIRECTIVES } from '@angular/forms';
import { TimepickerComponent } from 'ng2-bootstrap/ng2-bootstrap';

@Component({
  selector: 'my-timepicker',
  directives: [FORM_DIRECTIVES, TimepickerComponent ],
  template: `
  <div class="well">
    <timepicker
      [(ngModel)]="initialValue"
      [hourStep]="hourStep"
      [minuteStep]="minuteStep"
      [showMeridian]="showMeridian"
      [readonlyInput]="disabled"
      [mousewheel]="mousewheel"
      [arrowkeys]="arrowkeys"
      [showSpinners]="showSpinners"
      [min]="min"
      [max]="max"
      name="aTimePicker"
      required
    ></timepicker>
  </div>
`
})
export class TimePickerComponent implements OnInit {
  initialValue: Date;
  hourStep: number = 1;
  minuteStep: number = 1;
  showMeridian: boolean = true;
  mousewheel: boolean = true;
  arrowkeys: boolean = true;
  showSpinners: boolean = true;
  min: Date;
  max: Date;

ngOnInit() {
  this.initialValue = new Date();
  }
}

我在使用datepicker时遇到了类似的问题,我在上面的代码片段中做了一些修改,让它正常工作,我还没有测试这些更改,但让我知道它的运行情况,希望它至少是一个起点。

据我所知,您目前不需要REACTIVE_FORM_DIRECTIVES,因为您在任何地方都没有使用它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38796011

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档