gpt4 book ai didi

javascript - AngularJS 和 Fullcalendar : eventClick works only first time

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:49:58 24 4
gpt4 key购买 nike

我正在使用基于全日历的 Angular 模块:https://github.com/angular-ui/ui-calendar以及来自 ng-bootstrap 的对话模块。我将日历配置为显示用于编辑 eventClick 操作事件的对话框。它只工作一次。关闭第一个对话框并再次单击任何事件后,新对话框不会显示。但是,当我单击页面上的任何其他链接时,所有需要的对话框都会一个接一个地显示,就像它们以某种方式在某处排队一样。

这是我的 Controller 的片段:

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

稍后在 Controller 中从 REST 获取事件。

在 html 中: <div ui-calendar="calendar" config="calendar" ng-model="eventSources"/>

控制台没有错误,我做错了什么?

plunker 上的代码:http://plnkr.co/edit/89sQfsU85zN4uxauFI2Y?p=preview

最佳答案

与往常一样,当有可用的 fiddle/plnkr 时,事情会变得更简单、更明显。您需要在 $apply 函数中调用 showEditVisitDialog:

...
$scope.calendar = {
editable: true,
eventClick: function(){
$scope.$apply(function(){
$scope.showEditVisitDialog()
});
}
};
...

工作 plnkr .

关于javascript - AngularJS 和 Fullcalendar : eventClick works only first time,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16628422/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com