estoy usando fullcalendar
para mostrar una serie de registros dentro de un calendario. Está funcionando maravillosamente.
Ahora estoy intentando agregar la capacidad de hacer clic en un día para agregar un nuevo evento. He agregado el dayClick
código a continuación:
$("#calendar").fullCalendar({
...
dayClick: function (date, jsEvent, view) {
$scope.AddDailyRecord(date);
},
...
});
La función AddDailyRecord
Esta abajo:
$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;
}
Este mismo código ya está siendo utilizado por este botón:
<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>
Este es el md-dialog
en cuestión (para mostrar cómo alternar mostrar / ocultar):
<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>
Cuando hago clic en el botón, se muestra correctamenteel diálogo. Pero, cuando hago clic en el día en que se ejecuta el código, no aparece ningún diálogo. Sin embargo, si hago clic en las flechas del calendario para ver otro mes (anterior o siguiente), el cuadro de diálogo está allí.
¿Qué debo hacer para que se muestre en el calendario actual?
Respuestas
1 para la respuesta № 1despues de correr
$scope.AddDailyRecord(date);
Ejecutar aplicar en el alcance
$scope.$apply()
La devolución de llamada dayCick de fullCalendar está fuera del alcance de su controlador.