我正在使用sigma.js和angular js来构建我的可视化Web应用程序。
问题陈述:我编写了一些代码,当过滤条件发生变化时,将触发过滤模块根据用户选择过滤掉节点(参见下面的代码)。但是,最初的过滤器工作正常任何问题,但后来它似乎没有工作。看起来它根本没有执行过滤谓词。
我尝试了以下可能的方法,但无法解决问题。
1)为每个数据更改触发器销毁并重新创建过滤器对象。
2)未注册和注册的过滤谓词。
代码段:
scope.$watch('filtersettingdata',function(){
s = new sigma({
graph: scope.data['mdata'],
container: element.elementid,
renderer: {
container: document.getElementById(element.elementid),
type: 'canvas'
},
settings: filtersettingdata
});
var filter = new sigma.plugins.filter(s);
filter.nodesBy(
function(n) {
//predicate with new filter values
},'filter_name').apply();
s.refresh();
}
任何帮助/建议都将非常感激。
提前致谢。
答案 0 :(得分:1)
我是这个插件的作者。
它在官方sigma存储库中已过时,我认为它不会与Angular一起使用。
它现在在双重许可GNU GPLv3 +商业版上发布:https://github.com/Linkurious/linkurious.js/tree/linkurious-version/plugins/sigma.plugins.filter
此版本适用于Angular,我已成功将其用于我公司的项目中。
免责声明:我在Linkurious SAS工作。