Angular упомяните триггер при нажатии на любой алфавит - PullRequest
0 голосов
/ 07 февраля 2020

В моем проекте angular я использую библиотеку angular для упоминания имен пользователей. он работает нормально, если я наберу @ или #. он выдаст мне список пользователей только тогда, когда я наберу @ или #.

Но я не хочу печатать @ или #. Я хочу напечатать любой алфавит, чтобы он дал мне нужный результат. предположим, что если я наберу j, то это даст мне весь список имен пользователей, который начинается с символа J или j.

Кто-нибудь может мне помочь с этим?

вы можете сослаться на эту работающую код здесь ... ссылка.

приведенная выше ссылка является моим рабочим примером, но она работает только когда я набрал @, я хочу работать, когда я набрал любой символ

Также Я попробовал это, как показано ниже

<input type="text" class="searchBox" [mention]="items" [mentionConfig]="{triggerChar:''}" placeholder="Search user" [(ngModel)]="searchText" />

в приведенном выше коде triggerChar, мне нужно указать какое-то значение, если я поставлю @ или #, это будет работать в соответствии с этим. но работать на любого персонажа, я не знаю, что делать?

1 Ответ

0 голосов
/ 07 февраля 2020

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

Библиотека angular-mention использует triggerChar в качестве ключа для индексации списка упоминаний.

// in file "angular-mentions/src/lib/mention.directive.ts"

let config = this.triggerChars[charPressed]; <= locate this line

/* custom code start */
const yourTriggerCharList = ['a', 'b', ...
if (yourTriggerCharList.indexOf(charPressed) >= 0 && !config && !this.searching) {
    config = this.triggerChars[anExistingTriggerChar];
}
/* custom code end */

if (config) { // <= triggerChar found
    ... (showing search list)
...