Я использую модуль Angular на основе fullcalendar: https://github.com/angular-ui/ui-calendar вместе с диалоговым модулем из ng-bootstrap. Я настроил календарь, чтобы отобразить диалоговое окно для редактирования события в действии eventClick. Он работает отлично только один раз. После закрытия первого диалога и повторного нажатия на любое событие новый диалог не отображается. Но когда я нажимаю на любую другую ссылку на странице, все нужные диалоги показывают один за другим, как будто они где-то в очереди.AngularJS и Fullcalendar: eventClick работает только в первый раз
Вот отрывок из моего контроллера:
$scope.showEditVisitDialog = function (event) {
var editVisitDialogOpts = {
backdropClick: false,
templateUrl: 'views/addEditVisitDialog.html',
controller: 'AddEditVisitDialogController',
resolve: {
patientId: function() {
return event.patientId;
},
visitId: function() {
return event.id;
}
}
};
var editVisitDialog = $dialog.dialog(editVisitDialogOpts);
editVisitDialog.open().then(function (updatedVisit) {
//some action
});
};
$scope.calendar = {
height: 450,
editable: true,
header: {
left: 'month agendaWeek ',
center: 'title',
right: 'today prev,next'
},
eventClick: $scope.showEditVisitDialog
};
$scope.events = [];
$scope.eventSources = [$scope.events]
События выбираются из REST позже в контроллере.
В HTML: <div ui-calendar="calendar" config="calendar" ng-model="eventSources"/>
в консоли ошибок, что я делаю неправильно?
Код на plunker: http://plnkr.co/edit/89sQfsU85zN4uxauFI2Y?p=preview
Я говорю сначала попробовать и посмотреть, если ваш 'функция showEditVisitDialog' вызывается каждый раз при нажатии на календаре. Если это не так, как проблема в событии click календаря. В противном случае проблема может быть решена. – Stewie
@Stewie Проверено уже, функция вызывается. Я попытаюсь удалить решение и проверить, вызвало ли оно проблему (но я думаю, что это вызовет некоторые ошибки, если проблема будет проблемой). Что вы подразумеваете под: «Если это не так, как проблема в событии click для календаря»? – Kacper
Я имел в виду, что если 'ShowEditVisitDialog' не вызывается каждый раз, когда вы нажимаете на календарь, это может быть календарь, который« ставит в очередь »события (но кажется, что вы уже проверили это). Это может помочь, если вы можете воспроизвести свою проблему в jsfiddle/plnkr/jsbin. Кроме того, попробуйте подключить AddEditVisitDialogController к сообщению. Может быть, там что-то скрывается. – Stewie