Summernote从php中得到提及

时间:2017-09-26 14:22:12

标签: jquery arrays summernote hint

我正在使用Summernote编辑器(@username)。 (https://summernote.org/examples/#hint-for-mention) 我正在寻找一种方法将用户名数组加载到Summernote中。 我尝试过的事情:(在jQuery promises with summernote hints的帮助下)

$(document).ready(function()
{
    $('.editor').summernote({
        height: 300,
        hint: {
             match: /\B@(\w*)$/,
             users: function(keyword, callback) {
                 $.ajax({
                     url: '{path}/get_users/' + keyword,
                     type: 'get',
                     async: true
                 }).done(callback);
             },
             search: function (keyword, callback) {
                 this.users(keyword, callback);
             },
             content: function (item) {
                 return '@' + item;
             }
       });
   });
});

返回用户名数组的PHP:

public function get_users($keyword='')
{
    $ar = array('jayden', 'sam', 'alvin', 'david');
    echo json_encode($ar); // returns ['jayden', 'sam', 'alvin', 'david']
}

结果:

Uncaught TypeError: items.map is not a function
    at HintPopover.createItemTemplates (summernote.js:7625)
    at Object.<anonymous> (summernote.js:7672)
    at i (jquery-3.2.1.min.js:2)
    at Object.fireWith [as resolveWith] (jquery-3.2.1.min.js:2)
    at A (jquery-3.2.1.min.js:4)
    at XMLHttpRequest.<anonymous> (jquery-3.2.1.min.js:4)

看起来这个.users不被认为是一个数组...... 谢谢你的建议...

1 个答案:

答案 0 :(得分:0)

您需要在您的ajax调用中声明返回类型为json

users: function(keyword, callback) {
             $.ajax({
                 url: '{path}/get_users/' + keyword,
                 type: 'get',
                 dataType: "json",   <----here
                 async: true
             }).done(callback);
         },