/ / md-dialog wird nicht im aktuellen Kalender gerendert - angularjs, fullcalendar, ng-show

md-dialog wird nicht im aktuellen Kalender gerendert - angularjs, fullcalendar, ng-show

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 № 1

Nach 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.