当您单击每个按钮时,它只会调用一个模态,以便您可以编辑或删除事件。从视图中传递事件我遇到了麻烦。
这是在控制器中:
$scope.eventRender = function (event, element, view) {
element.append(calendarEventService.formatWeekEvent(event));
$compile(element)($scope);
};
$scope.uiConfig = {
calendar:{
...,
eventRender: $scope.eventRender
}
};
这是eventRender正在调用的服务:
app.service('calendarEventService', function () {
this.formatWeekEvent = function (event) {
return <a whole bunch of html to render the button> +
'<a ng-click="editActivityModal(event, $event)">Edit</a>' +
'<a ng-click="deleteActivityModal(event, $event)">Delete</a>'
};
});
事件本身被传递到服务中,但是当调用editActivityModal或deleteActivityModal时,事件没有被传递,我只是未定义,但是,$ event被传递(这只是为了使用preventDefault和stopPropagation stuff)
答案 0 :(得分:2)
找到解决方案如下:
在返回的html中添加一个css类来绑定eventRender函数中的click事件:
app.service('calendarEventService', function () {
this.formatWeekEvent = function (event) {
return <a whole bunch of html to render the button> +
'<a class="editEvent">Edit</a>' +
'<a class="deleteEvent">Delete</a>';
};
});
在eventRender函数中:
$scope.eventRender = function (event, element, view) {
element.append(calendarEventService.formatWeekEvent(event));
element.find(".editEvent").bind('click', function () {
$scope.editEvent(event);
return false;
});
element.find(".deleteEvent").bind('click', function () {
$scope.deleteEvent(event);
return false;
});
$compile(element)($scope);
};