如何启动Angular Gantt View中折叠的所有任务

时间:2015-06-11 08:54:11

标签: javascript jquery angularjs gantt-chart

我正在使用角度甘特图视图库。 (Source)

我不知道为什么,但我无法启动所有崩溃的任务。基本上它只是模拟"崩溃所有"按钮单击选项菜单,如$('#btnId').trigger('click')。但不是!!

有人知道为什么吗?

2 个答案:

答案 0 :(得分:0)

如果我理解你的问题,你可能想要使用甘特范围内的api。我测试了使用collapseAll和expandAll方法折叠和扩展你提到的演示,它运行良好。 api还包含其core方法中的方法,用于测试图表何时准备就绪,以便在图表准备好后将其折叠。

答案 1 :(得分:0)

如果我没有错误地阅读文档,那么" Tree"的默认行为插件是"扩展所有"。

甘特图中的每一行都可以包含一个或多个任务,设置折叠的所有行都会导致所有任务也崩溃。

如果要在甘特图显示后折叠所有行。试试这些:

  1. 设置你的gantt api(在你的html文件中)

    <div gantt 
        .....
        api="ganttApi"
        ...
    </div>
    
  2. 使用api事件发送collapse all命令(在angular控制器内)。

    $scope.ganttApi = function(api){
        api.core.on.ready($scope, function(api){
            var doDefaultCollapse = false;
    
            api.rows.on.displayed($scope, function(rowList){
                if ((doDefaultCollapse) && (api.data.get().length===rowList.length)) { // wait for last row displayed
                    doDefaultCollapse = false;
                    $timeout(function(){
                        api.tree.collapse(row.model.id);
                    });
                };
            });
    
            api.data.on.change($scope, function(newData, oldData){
                doDefaultCollapse = (!_.isEmpty(newData));
            });
        });
    };
    
  3. 如果您只想折叠树中的一行,请将上面的代码替换为:

        var collapsedRowId = 123;
        $scope.ganttApi = function(api){
            api.core.on.ready($scope, function(api){
                var doDefaultCollapse = false;
    
                api.rows.on.displayed($scope, function(rowList){
                    if ((doDefaultCollapse) && (api.data.get().length===rowList.length)) { // wait for last row displayed
                        _.find(rowList, function(row){
                            if ((row.model.id===collapsedRowId ) 
                                && (row._collapsed===false)) { // if row._collapsed is undefined, meant row not added to tree hierarchy yet
                                doDefaultCollapse = false;
                                $timeout(function(){
                                    api.tree.collapse(row.model.id);
                                });
                            };
                        });
                    };
                });
    
                api.data.on.change($scope, function(newData, oldData){
                    doDefaultCollapse = (!_.isEmpty(newData));
                });
            });
        };
    

    注意: &#34; .find&#34;和&#34; .isEmpty&#34;是lodash。 &#34; _倒塌&#34。由Agular树插件分配,它成为每行的属性

    希望它有所帮助,

    感谢。

相关问题