2016-04-18 6 views
0

Ich bin neu in Angularjs. Ich frage mich, ob es einen Filtermechanismus für den Angular Material Date Picker gibt (md-datepicker), so dass ich nur Montag wählen kann, wenn andere Tage der Woche gewählt werden, vorausgesetzt alle Tage sind aktiviert. Zum Beispiel, wenn ich am 14.04.2016 (Donnerstag) geklickt habe, sollte der (11-04-2016) Montag dieser Woche automatisch ausgewählt werden.Angular Material Datepicker - wählen Sie Montag standardmäßig, wenn andere Tage der Woche gewählt wird

Lassen Sie mich wissen, wenn weitere Details benötigt werden. Jede Hilfe wird sehr geschätzt. Danke im Voraus.

Antwort

1

Sie einen Filter für Ihre picker schreiben:

<md-datepicker ng-model="myDate" md-date-filter="onlyMondays"></md-datepicker> 

$scope.onlyMondays = function(date) { 
    var day = date.getDay(); 
    return day === 1; 
} 

Oder wenn Sie möchten, dass alle Tage lassen wählbar Sie das Datum Montag im Hintergrund mit ändern könnte:

<md-datepicker ng-model="selectedDate"></md-datepicker> 

Sie könnten setze das Datum auf den letzten Montag danach:

var daysToSubstract = $scope.selectedDate.getDay() - 1; 
$scope.myDate.setDate($scope.selectedDate.getDate() - daysToSubstract); 
+0

Danke @kabaehr für deinen Beitrag zu meinem Thema. Ich habe den obigen Code gemäß meiner Anforderung hinzugefügt. '$ scope.onlyMondayToSelectStartDate = Funktion (Datum) { var daysToSubstract = 6; if ($ scope.filtersDat.selectedStartdate.Datecontent [0] .getDay()! = 0) TageToSubstract = $ scope.filtersDat.selectedStartdate.Datecontent [0] .getDay() -1; $ scope.filtersDat.selectedStartdate.Datecontent [0] .setDate ($ scope.filtersDat.selectedStartdate.Datecontent [0] .getDate() -daysToSubstract); Rückgabe false; } ' –

+0

Wie können Sie dann eine ganze Woche auswählen, unabhängig vom gewählten Datum? Auch wenn Sie Dienstag auswählen, ist Montag bis Sonntag die Ausgabe. –