处理Angular Gantt上的单元格点击事件

时间:2016-12-13 13:59:03

标签: javascript angularjs angularjs-directive

我正在尝试自定义Angular Gantt的行为。

单击单元格:我必须获取当前单元格值&相应的标题值。

我通过此网址中的文档:https://angular-gantt.readthedocs.io/en/latest/ 但无法获得所需的活动。

是否有任何活动可以实现此功能。非常感谢任何帮助。

我尝试了以下代码

 mainApp.controller("TestController", function ($scope, TestService) {   
     $scope.registerApi = function (api) {
     api.tasks.on.change($scope, onTaskChange); //working

     //TO handle the cell click & corresponding header value
     api.core.getDateByPosition($scope, getHeader)

     //api.core.on.ready($scope, getDateByPosition) //not working
     //api.core.on.rendered($scope, getDateByPosition) //not working

    }

    var onTaskChange = function (selected) {
       $scope.currCell = selected.model;
       console.log("onTaskChange: " + selected.model.name);
            };

    var getHeader= function (getHeader) {
          // I should get the current clicked cell header value. But getting error
            };    
    } 

1 个答案:

答案 0 :(得分:3)

回答我自己的问题,因为有人可能觉得它很有用。

我可以通过这个链接实现这一点 https://angular-gantt.readthedocs.io/en/latest/configuration/customize/

以下是我使用的代码:

$scope.registerApi = function (api) { 
    api.directives.on.new($scope, function (dName, dScope, dElement, dAttrs, dController) {
                if (dName === 'ganttTask') {                    
                    dElement.bind('click', function (event) {
                        debugger;
                        $scope.RowName1 = dScope.task.row.model;
                        $scope.currentTask = dScope.task.model;
                    });
                }
                else if (dName === 'ganttRow')
                {
                    dElement.bind('click', function (event) {
                        debugger;
                        $scope.RowName = dScope.row.model.name;
                        $scope.Header = api.core.getDateByPosition(event.offsetX, true)
                    });
                }               
            });