CKeditor 4.13.0 упоминает плагин в AngularJS: не показывать @ в раскрывающемся списке - PullRequest
0 голосов
/ 04 ноября 2019

Когда пользователь вводит любой символ после @ в ckeditor, он показывает @ в выпадающем списке. Ниже ckeditor упоминает код плагина:

CKEDITOR.replace('addpost', {
    mentions: [{
        feed: dataFeed,
        itemTemplate: '<li class="user-search" data-id="{user_id}">' +
            '<img class="user-photo" src="{picture}" alt="{name}"/>' +
            '<strong class="username">{name}</strong>' +
            '</li>',
        outputTemplate: '<a href="#/userprofile/userId/{user_id}">@{name}</a>',
        minChars: 1
        }
    ]
});
CKEDITOR.instances['addpost'].setData('');

function dataFeed(opts, callback) {
    var xhr = new XMLHttpRequest();

    xhr.onreadystatechange = function() {
        if ( xhr.readyState == 4 ) {
            if ( xhr.status == 200 ) {
                response = JSON.parse( this.responseText );
                if(response.success) {
                    var orgUsersList = [];
                    orgUsersList = response.userList;
                    var matchProperty = 'name';
                    data = orgUsersList.filter(function(item) {
                        return item[matchProperty].toLowerCase().indexOf(opts.query.toLowerCase()) == 0;
                    });

                    data = data.sort(function(a, b) {
                        return a[matchProperty].localeCompare(b[matchProperty], undefined, {
                        sensitivity: 'accent'
                        });
                    });
                } 
                callback(data);
            } else {
                callback( [] );
            }
        }
    }

    xhr.open( 'POST', 'default/activitynotification/getorganisationusers');
    xhr.send();
}

Выходное значение равно:

Вывод, когда пользователь вводит символ после @ & выпадающего меню с @ в нем

Ожидаемое значение:

Когда пользователь вводит любой символ после @, ожидаемый результат должен быть следующим:

1 Ответ

0 голосов
/ 04 ноября 2019

Вот трюк, который сработал для меня: в itemtemplate измените {name} на {имя} {фамилия}

Вот обновленный и рабочий код:

CKEDITOR.replace('addpost', {
        mentions: [{
            feed: dataFeed,
            itemTemplate: '<li class="user-search" data-id="{user_id}">' +
                '<img class="user-photo" src="{picture}" alt="{username}"/>' +
                '<strong class="username">{firstname} {lastname}</strong>' +
                '</li>',
            outputTemplate: '<a href="#/userprofile/userId/{user_id}">@{firstname} {lastname}</a>',
            minChars: 1
            }
        ]
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...