我正在使用带有提及的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)
似乎this.users没有被识别为数组...谢谢你的建议。
发布于 2019-03-08 06:23:42
您需要在ajax
调用中声明返回类型为json
。
users: function(keyword, callback) {
$.ajax({
url: '{path}/get_users/' + keyword,
type: 'get',
dataType: "json", <----here
async: true
}).done(callback);
},
https://stackoverflow.com/questions/46429041
复制相似问题