ui-calendar fullcalendar

时间:2016-02-26 14:29:02

标签: javascript angularjs angular-ui ui-calendar

ui-calendar example

当您单击每个按钮时,它只会调用一个模态,以便您可以编辑或删除事件。从视图中传递事件我遇到了麻烦。

这是在控制器中:

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

1 个答案:

答案 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);
};