Проблема с фильтром Sigma.js
Я использую sigma.js вместе с angular js для создания своего веб-приложения для визуализации.
Постановка проблемы: я написал код таким образом, что при изменении критериев фильтрации модуль фильтра будет запускаться для фильтрации узлов на основе выбора пользователя (см. Код ниже). Но в первый раз фильтр работает нормально без каких-либо проблем, но позже это, кажется, не работает. Похоже, что он не выполняет предикат фильтра вообще.
Я попробовал ниже возможные способы, но не смог решить проблему.
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();
}
любая помощь / предложения будут по достоинству оценены.
Заранее спасибо.
1 ответ
Я автор этого плагина.
Он устарел в официальном хранилище сигма, и я не думаю, что он будет работать с Angular, как он есть.
Теперь он выпущен под коммерческой лицензией GNU GPLv3 + здесь: https://github.com/Linkurious/linkurious.js/tree/linkurious-version/plugins/sigma.plugins.filter
Эта версия работает с Angular, и я успешно использовал ее в проектах моей компании.
Отказ от ответственности: я работаю в Linkurious SAS.