2017-10-14 6 views
1

Ich benutze @ angular/material2 Modul, um datepicker zu meiner eckigen 4 App hinzuzufügen.@ eckig/material datepicker position

hier ist mein HTML

<mat-form-field> 
      <input matInput [matDatepicker]="picker" placeholder="Choose a date"> 
      <mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle> 
      <mat-datepicker #picker></mat-datepicker> 
</mat-form-field> 

app.module.ts

import {MatDatepickerModule,MatNativeDateModule,MatFormFieldModule,MatInputModule} from '@angular/material'; 

wenn ich toggler der Datepicker Popup auf dem picker klicken ist ganz am Ende der Seite vollständig außerhalb der Form geöffnet Feld sollte es bei geöffnet werden.

jede Hilfe wird geschätzt.

Antwort

1

Der fehlende Teil der CSS-Datei angular-material.css

+0

dieses Stylesheet arbeitete für mich: ** node_modules/@angular/material/prebuilt_themes/indigo_pink.css** gearbeitet für mich – Louis

0
<mat-form-field> 
    <input matInput [matDatepicker]="picker" placeholder="Choose a date"> 
    <mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle> 
    <mat-datepicker #picker></mat-datepicker> 
</mat-form-field> 

Sie benötigen Funktion Klick ex erstellen:

<input matInput [matDatepicker]="picker" (click)="picker.open()" placeholder="Choose a date"> 
+0

das Popup ist geöffnet von 'mat-datepicker-toggle' das ist nicht mein Problem, bitte überprüfen Sie meine Frage erneut –

-1

Ups sory Mann, müssen Sie CSS-Stil, Position hinzufügen: relative;
Mat-Datepicker-Toggle {Position: relative;} oder Sie Eltern, viel Glück

0

Ich bekam auch das gleiche Problem mit Angular 4 mit Material 2 Datepicker.

Irgendwie node_modules/@angular/material/prebuilt-themes/indigo-pink.css wird nicht in der Anwendung verknüpft. Ich habe es behoben, indem ich den Inhalt dieses Stylesheets in mein Root-Stylesheet 'style.css' kopiert habe.

Hinzufügen oder Link zu diesem Stylesheet in Ihrem Projekt: node_modules/@angular/material/prebuilt-themes/indigo-pink.css

0
zu importieren war

Wenn Sie die Komponente touchUi="true" für die Komponente <matDatepicker> verwenden, wird sie als modal angezeigt. Ich bin mir nicht sicher, ob deine Seite hauptsächlich auf Mobilgeräten verwendet wird, aber ich finde, dass diese Erscheinung für den matDatepicker besser geeignet ist. Hier

ist das Markup:

<input matInput [matDatepicker]="picker" placeholder="Birthday" [formControl]="birthday"> 
<mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle> 
<mat-datepicker touchUi="true" #picker></mat-datepicker> //This line has the touchUi 

hoffe, das hilft!

0

Mein Problem war, ich hatte 10 zu verstecken. Die Datumsauswahl verwendet dieses Element, um die Position zu bestimmen.