我正在使用角度甘特图视图库。 (Source)
我不知道为什么,但我无法启动所有崩溃的任务。基本上它只是模拟"崩溃所有"按钮单击选项菜单,如$('#btnId').trigger('click')
。但不是!!
有人知道为什么吗?
答案 0 :(得分:0)
如果我理解你的问题,你可能想要使用甘特范围内的api。我测试了使用collapseAll和expandAll方法折叠和扩展你提到的演示,它运行良好。 api还包含其core方法中的方法,用于测试图表何时准备就绪,以便在图表准备好后将其折叠。
答案 1 :(得分:0)
如果我没有错误地阅读文档,那么" Tree"的默认行为插件是"扩展所有"。
甘特图中的每一行都可以包含一个或多个任务,设置折叠的所有行都会导致所有任务也崩溃。
如果要在甘特图显示后折叠所有行。试试这些:
设置你的gantt api(在你的html文件中)
<div gantt
.....
api="ganttApi"
...
</div>
使用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));
});
});
};
如果您只想折叠树中的一行,请将上面的代码替换为:
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树插件分配,它成为每行的属性
希望它有所帮助,
感谢。