/ / md-dialog ne s'affiche pas dans le calendrier en cours - angularjs, calendrier complet, ng-show

md-dialog ne s'affiche pas dans le calendrier en cours - angularjs, fullcalendar, ng-show

j'utilise fullcalendar pour afficher une série d'enregistrements dans un calendrier. Cela fonctionne à merveille.

J'essaie maintenant d'ajouter la possibilité de cliquer sur un jour pour ajouter un nouvel événement. J'ai ajouté le dayClick code ci-dessous:

$("#calendar").fullCalendar({
...
dayClick: function (date, jsEvent, view) {
$scope.AddDailyRecord(date);
},
...
});

La fonction AddDailyRecord est inférieure à:

$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;
}

Ce même code est déjà utilisé par ce bouton:

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

C'est le md-dialog en question (pour montrer comment je bascule afficher / masquer):

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

Quand je clique sur le bouton, il affiche correctementle dialogue. Mais, lorsque je clique sur le jour où le code est exécuté, mais pas de dialogue. Cependant, si je clique sur les flèches du calendrier pour afficher un autre mois (précédent ou suivant), la boîte de dialogue est présente.

Que dois-je faire pour que le rendu apparaisse dans le calendrier actuel?

Réponses:

1 pour la réponse № 1

Après avoir couru

$scope.AddDailyRecord(date);

Exécuter appliquer sur la portée

$scope.$apply()

Le callback fullCalendar dayClick est en dehors de la portée de votre contrôleur.