Ответ 1
Вы хотите использовать атрибут queryExpr
:
var f = new dijit.form.FilteringSelect({
...
queryExpr: "*${0}*",
...
}, node);
Обратите внимание на * до и после ${0}.
dijit.form.FilteringSelect близок к тому, что мне нужно. Я пробовал много способов сделать то, что хочу, но, будучи начинающим диджитом, я никогда не знаю, пойду ли я в правильном направлении.
Когда я начинаю вводить в FilteringSelect, я вижу только параметры, начиная с того, что я набрал. Как запрос на value + "*"
Мне нужно увидеть любой вариант, который имеет то, что я печатаю где угодно. Как запрос на "*" + value + "*"
Итак, если есть "Apple", "Banana" и "Orange", и я набираю "e", я должен видеть "Apple" и "Orange". Если возможно, в строке поиска подчеркивается: "Appl e", "Orang e"
Мне кажется, мне нужно какое-то умное хранилище данных, но в любом месте я выгляжу как тупик. Я что-то упускаю, или я должен делать это совершенно по-другому?
Вы хотите использовать атрибут queryExpr
:
var f = new dijit.form.FilteringSelect({
...
queryExpr: "*${0}*",
...
}, node);
Обратите внимание на * до и после ${0}.
Эй! Вам нужно добавить queryExpr = "$ {0}" в компонент filteringselect.
По умолчанию это ${0} *, то есть он ищет строки, начинающиеся с того, что вы набрали.
Как подсказка для других, в JSP мне пришлось изменить запрос expr. к запросуExpr = "\ ${0}".
В нашем проекте мы решили эту проблему с патчем для dojo.data.util.filter
переписывания метода patternToRegExp
.
После долгих попыток я смог запустить его, подсказка Мады была правильной, но пропустить * до и после. Правильный queryStr (в JSP) равен '*\${0}*'