GoJS highlightCollection не работает для значения даты

Я выделяю один или несколько узлов, ребер и свойств в моем графике с помощью метода highlightCollection, и он отлично работает, за исключением значений даты.

Вот что я попробовал:

Когда значение 2013-01-28 находится в поле dateValue ссылки (ребра) или свойства узла:

2013найдено

2013-01-28Не найдено

2013-не найден

Как только в строке поиска появляется тире, свойство 'highlightCollection' не находит свойство.

Когда то же значение "2013-01-28" находится в поле "textValue" ссылки или свойства узла:

2013 найдено

2013-01-28 Найдено

2013- Найдено

Я попытался вообще без регулярных выражений, и с этим, который полностью не заботится о тире или любом символе, который может быть внутри значения даты:

/2013.{0,}03.{0,}25/

GoJS изменяет или анализирует значение даты другим способом, когда это дата? Поле dateValue является зарезервированным словом?

В данный момент мы работаем над версией 1.6.23.

Спасибо!

2 ответа

Решение

Если значением свойства данных является Date, Diagram.findNodesByExample будет вычислять regex.test(dataPropertyValue.toString()), Таким образом, результат зависит от того, что toString возвращает для Date s.

В Firefox new Date().toString() возвращает "Среда, 14 июня 2017 г. 16:30:36 GMT-0400 (восточное стандартное время)" для меня, только минуту назад, поэтому я понимаю, почему добавление дефиса / тире в строку поиска может привести к сбою.

Вместо использования Regex, вы можете использовать функцию в качестве предиката, которая делает все, что вам нужно.

Именно при создании новой даты из даты, которую я ищу, и ищу этот текст, метод 'highlightCollection' возвращает нужные элементы.

Большое спасибо!

Другие вопросы по тегам