ich benutze fullcalendar
um eine Reihe von Datensätzen innerhalb eines Kalenders anzuzeigen. Es funktioniert wunderbar.
Ich versuche jetzt, die Möglichkeit hinzuzufügen, auf einen Tag zu klicken, um ein neues Ereignis hinzuzufügen. Ich habe das hinzugefügt dayClick
Code unten:
$("#calendar").fullCalendar({
...
dayClick: function (date, jsEvent, view) {
$scope.AddDailyRecord(date);
},
...
});
Die Funktion AddDailyRecord
ist unterhalb:
$scope.AddDailyRecord = function (date) {
if (date) {
$scope.reportDate = date.format("YYYY-MM-DD");
$scope.reportToDate = date.format("YYYY-MM-DD");
} else {
var newDate = moment(new Date()).format("YYYY-MM-DD");
$scope.reportDate = newDate;
$scope.reportToDate = newDate;
}
$scope.statusJob = "";
if ($scope.statusDetForeman)
$scope.dailyRecordForeman = $scope.statusDetForeman;
else
$scope.dailyRecordForeman = appData.user;
$scope.showDailyRecordDiv = true;
}
$scope.closeDailyRecordDialog = function () {
$scope.showDailyRecordDiv = false;
}
Derselbe Code wird bereits von dieser Schaltfläche verwendet:
<button class="md-raised md-primary detailGridAddButton md-button md-ink-ripple"
type="button" ng-transclude="" ng-click="AddDailyRecord()">
<md-icon class="ng-scope material-icons" role="img" aria-label="add">add</md-icon>
<div class="md-ripple-container" style=""></div>
</button>
Dies ist das md-dialog
in Frage (um zu zeigen, wie ich show / hide umschalten):
<div id="dailyRecordDiv" class="md-dialog-container ng-scope full-height"
ng-show="showDailyRecordDiv">
<md-dialog>
<md-toolbar>
...
</md-toolbar>
<md-divider></md-divider>
<md-dialog-content class="md-dialog-content">
<form name="dailyRecordform" novalidate>
...
</form>
</md-dialog-content>
</md-dialog>
</div>
Wenn ich auf die Schaltfläche klicke, wird sie korrekt angezeigtder Dialog. Aber, wenn ich auf den Tag klicke, wird der Code ausgeführt, aber kein Dialog. Wenn ich jedoch auf die Kalenderpfeile klicke, um einen weiteren Monat (vorher oder nächsten) anzuzeigen, ist der Dialog vorhanden.
Was muss ich tun, damit es im aktuellen Kalender gerendert wird?
Antworten:
1 für die Antwort № 1Nach dem Rennen
$scope.AddDailyRecord(date);
Führen Sie Apply auf dem Bereich aus
$scope.$apply()
Die Rückrufaktion fullCalendar dayClick liegt außerhalb des Bereichs Ihres Controllers.