d3: принудительно ориентированный граф: фильтрация узлов

Я просматривал следующий пост:

выделить выбранное узел

введите здесь описание изображения

Действительно хорошее решение... Я новичок в d3 и очарован его гибкостью. Я столкнулся с проблемой в один момент. Вместо фильтрации узлов при наведении курсора я хочу отфильтровать их на основе введенного текста (имя узла или идентификатор) в текстовом поле html. Есть идеи, как этого добиться??

С Уважением


person Vicky    schedule 30.01.2013    source источник


Ответы (1)


Мне действительно пришлось сделать что-то подобное для проекта на работе. Решение, которое я придумал, состояло в том, чтобы дать каждому узлу логическое свойство, которое я назвал isInFilter.

Как только пользователь вводит текст, обработайте его, а затем пройдитесь по всем узлам и назначьте isInFilter для каждого узла либо ИСТИНА, либо ЛОЖЬ. Затем ваше условие для отображения узла (или выполнения любого перехода, который вы хотите сделать) просто становится проверкой свойства isInFilter.

person Matthew Herbst    schedule 03.02.2014
comment
Не могли бы вы показать пример этого? Я застрял, потому что я использую d3.json() для получения данных, поэтому я должен быть в этом блоке, чтобы получить доступ к узлам/ссылкам/графику, но не могу вызвать вложенную функцию из html. - person Dan; 17.09.2016
comment
Не уверен, что вы имеете в виду под застреванием - вы можете передавать данные оттуда куда угодно. - person Matthew Herbst; 21.09.2016
comment
не обращай внимания, я разобрался. Тем не менее, спасибо за ваш ответ. - person Dan; 21.09.2016