如何解决TinyMCE .filter() 不是提及的函数Laravel
我已经尝试解决我的问题有一段时间了,但是无论我做什么我都无法解决这个问题。目前,按照 TinyMCE 的文档,此代码由他们提供。
/* This represents a database of users on the server */
var userDb = {};
userNames.map(function(fullName) {
var name = fullName.toLowerCase().replace(/ /g,'');
var description = descriptions[Math.floor(descriptions.length * Math.random())];
var image = 'https://s3.amazonaws.com/uifaces/faces/twitter/' + images[Math.floor(images.length * Math.random())] + '/128.jpg';
return {
id: name,name: name,fullName: fullName,description: description,image: image
};
}).forEach(function(user) {
userDb[user.id] = user;
});
/* This represents getting the complete list of users from the server with only basic details */
var fetchUsers = function() {
return new Promise(function(resolve,_reject) {
/* simulate a server delay */
setTimeout(function() {
var users = Object.keys(userDb).map(function(id) {
return {
id: id,name: userDb[id].name,};
});
resolve(users);
},500);
});
};
/* This represents requesting all the details of a single user from the server database */
var fetchUser = function(id) {
return new Promise(function(resolve,reject) {
/* simulate a server delay */
setTimeout(function() {
if (Object.prototype.hasOwnProperty.call(userDb,id)) {
resolve(userDb[id]);
}
reject('unknown user id "' + id + '"');
},300);
});
};
return {
fetchUsers: fetchUsers,fetchUser: fetchUser
};
})();
/* These are "local" caches of the data returned from the fake server */
var usersRequest = null;
var userRequest = {};
var mentions_fetch = function(query,success) {
/* Fetch your full user list from somewhere */
if (usersRequest === null) {
usersRequest = fakeServer.fetchUsers();
}
usersRequest.then(function(users) {
/* query.term is the text the user typed after the '@' */
users = users.filter(function(user) {
return user.name.indexOf(query.term.toLowerCase()) !== -1;
});
users = users.slice(0,10);
/* Where the user object must contain the properties `id` and `name`
but you could additionally include anything else you deem useful. */
success(users);
});
};
当我尝试更改假服务器以通过 API 路由从我的实际服务器获取数据时,我得到 .filter 不是函数错误。所以我想我会使用 Object. values() 方法,但这不会返回任何内容,并且控制台日志显示为空。
这是我在控制器中的逻辑(顺便说一句,我使用的是 Laravel)
public function getUsers(Request $request) {
$user = User::all();
return $user;
}
当我更改此行时会发生过滤器问题:
if (usersRequest === null) {
usersRequest = fakeServer.fetchUsers();
}
我的 API 调用如下:
if (usersRequest === null) {
usersRequest = fetch('api/users/mention');
}
我的 API 响应如下:
[{id: 1,name: "John",email: "john@doe.com",email_verified_at: null,…},…]
0: {id: 1,…}
1: {id: 2,name: "Admin",email: "vi@example.com",email_verified_at: "2021-02-07 12:01:18",…}
2: {id: 3,name: "Admin2",email: "di@example",email_verified_at: "2021-02-07 12:01:46",…}
解决方法
想通了!经过艰苦的尝试和尝试,我设法找到了解决方案。
将 tinymce 脚本包装在一个函数中,我将我的脚本包装在一个名为 function tinyMCE() 的函数中
在函数之前,运行一个ajax api调用
var usergetNames = [];
$.ajax({
url: '/api/users/mention',method: 'get',dataType: 'json',contentType: 'application/json',success: function (data) {
usergetNames = data;
tinyMCE();
},error: function (ex) {
alert(ex.responseText);
}
});
在 tinyMCE 中,用这个替换 var userNames 行
var userNames = usergetNames;
您可以在他们的官方文档页面中获取tinymce 提及的其余代码。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。