Como usar o selector de datas em Angular 2?

Já experimentei muitos picadores de datas no meu aplicativo angular2, mas nenhum deles está a funcionar.Embora o extractor de datas esteja a mostrar na janela, mas o valor da data seleccionada não está a entrar na variável ngModel.

Author: Mubashir, 2016-01-14

9 answers

Na verdade, você pode usar um datepicker simplesmente adicionando o valor date no atributo type das suas entradas:

<input type="date" [(ngModel)]="company.birthdate"/>

Em alguns navegadores como o Chrome e o Microsoft Edge (não no Firefox), poderá carregar no ícone dentro da entrada para mostrar o selector de datas. Os ícones só aparecem quando o rato estiver sobre a entrada.

Para ter algo cruzando navegadores, você deve considerar usar bibliotecas compatíveis com o Angular2 tipo:

 47
Author: Thierry Templier, 2016-11-20 22:52:14

O PrimeNG também oferece um componente de DatePicker, demo ao vivo;

Http://www.primefaces.org/primeng/#/calendar

 5
Author: Cagatay Civici, 2016-02-03 16:24:21

Como respondida por @thierry sim, há uma opção para nós usarmos

<input type="date" [(ngModel)]="company.birthdate"/>
Por ter arranjado data para o nosso projecto. mas sim isso não é compatível para o Multi browser plateform (como mozila) e há muitos cross browser library para o mesmo.

Fiz dois Datepickers de calendário elegantes usando o tema Bootflat que é sensível também aqui

Https://github.com/MrPardeep/Angular2-DatePicker

enter image description here

Espero que isto lhe dê mais estilo e multi navegador datepicker.

 2
Author: Pardeep Jain, 2016-04-17 07:39:17

Não sei se ajuda, mas nós queríamos desenvolver um datepicker personalizado para o nosso projeto e não conseguimos encontrar um monte de Angular2 Datepicker nesse ponto e, portanto, acabou escrevendo um simples eu mesmo.

É um simples que selecciona a data e pode também indicar as datas que deseja desactivar antes e depois. Ele usa o emissor de eventos e define a data selecionada em um campo de texto. É publicado no npm e estou a trabalhar para o melhorar como bem.

Https://www.npmjs.com/package/angular2-simple-datepicker

Espero que ajude.
 1
Author: Bhuvana L, 2016-03-24 00:33:52

Angular 2 (Tipescript)

Também pode fazer isto com blur evento.

Olhe de perto para (blur)="newProjectModel.eEDate = eEDatePicker.value" no evento de borrão, atribui valor à variável temporária de entrada #eEDatePicker para a nossa variável modelonewProjectModel.eEDate

<form (ngSubmit)="onSubmit()" #newProjectForm="ngForm" >
  <div class="row">
    <div class="col-sm-4">
      <div class="form-group">
        <label for="end-date">Expected Finish Date</label>
        <div class='input-group date datetimepicker'>
          <input type='text' class="form-control" required [(ngModel)]="newProjectModel.eEDate" name="eEDate" #eEDate="ngModel" #eEDatePicker (blur)="newProjectModel.eEDate = eEDatePicker.value" />
          <span class="input-group-addon">
            <span class="fa fa-calendar"></span>
          </span>
        </div>
        <div [hidden]="eEDate.valid || eEDate.pristine" class="alert alert-danger">
          Expected Finish Date is required
        </div>
      </div>
    </div>
  </div>
  <div class="modal-footer" [hidden]="submitted">
    <button [hidden]="submitted" type="button" class="btn btn-red" data-dismiss="modal" >Cancel</button>
    <button [hidden]="submitted" type="submit" class="btn btn-green" [disabled]="!newProjectForm.form.valid">Save</button>
  </div>
  <div class="modal-footer" [hidden]="!submitted">
    <button [hidden]="!submitted" focus class="btn btn-green" data-dismiss="modal"  (click)="submitted=false">Ok</button>
  </div>
</form>

Estou a usar estas bibliotecas bootstrap:

Iniciatstrap-datetimepicker.minuto.css

Iniciatstrap-datetimepicker.minuto.js

 1
Author: Kaleem Ullah, 2017-04-05 05:59:58

Ver ng2-boostrap datePicker parece sobrepor o ngModel , enquanto a pergunta é diferente, as respostas dadas a ele resolveram o problema que você descreveu para mim.

Assumindo que está a usar o typescript, terá de adicionar isto à marcação html:

<datepicker [(ngModel)]="dateValue" [showWeeks]="false"</datepicker>

E no ficheiro ts componente, terá de importar

import {DATEPICKER_DIRECTIVES} from 'ng2-bootstrap/ng2-bootstrap';

E adicione as instruções DATEPICKER_DIRECTIVES à sua lista de fornecedores.

 0
Author: Herb F, 2017-05-23 10:31:37

Esta é a minha solução:

HTML

<input id="send_date"
       type="text"
       [(ngModel)]="this.dataModel.send_date"
       name="send_date"
       #send_date="ngModel"
       class="date-picker"
       data-date-format="dd-mm-yyyy">

.TS

//My data model has "send_date" property
dataModel: MyDataModel;

ngAfterViewInit() {

    //important point: You have to create a reference to this outer scope
    var that = this;

    $('#send_date').datepicker({
        //... your datepicker attributes
    }).change(function () {
        that.dataModel.send_date = $('#send_date').val();
    });

}
 0
Author: ali6p, 2016-11-28 19:05:08

Acabei de encontrar o meu leitor pacote de hoje basta digitar {[[0]} e seguir as instruções AQUI Se não gosta do seu estilo de nomeação, basta criar um componente de embalagem em torno dele que funciona com o tipo de data

 0
Author: shakram02, 2017-02-02 01:49:03

Considere a utilização de selector de dados angular , é um selector de datas altamente configurável construído para aplicações angulares.

enter image description here

 0
Author: vlio20, 2017-10-12 19:16:47