如何将 jquery getJSON 与局部变量一起使用
How use jquery getJSON with a local variable
我想扩展 Ace Editor 的补全,我需要 json 个单词,这是我的代码:
function load_completions() {
var object = $('#preview').attr('class');
$.ajax({
type: "POST",
url: "test_editor_ajax.php",
data: {action:'load_completion', object:object},
cache: false,
success: function(json){
var adminCompleter = {
getCompletions: function(editor, session, pos, prefix, callback) {
if (prefix.length === 0) { callback(null, []); return }
$.getJSON(json, function(wordList) {
callback(null, wordList.map(function(ea) {
return {name: ea.word, value: ea.word, meta: "optional text"}
}));
})
}
}
langTools.addCompleter(adminCompleter);
}
});
return false;
}
getJSON
函数需要 url 到 json 文件,但我已经用 ajax 在本地创建了 json,你怎么看在上面的代码中,ajax 调用 return a json 我以这种方式生成:
echo json_encode($completions);
和 $completions
是一个数组,所以我的问题是如何在该函数中使用它?
JSON 是 JavaScript Object Notation,因此:[]
或 {}
是 JSON.
我猜你只需要:
getCompletions: function(editor, session, pos, prefix, callback) {
if (prefix.length === 0) {
callback(null, []);
return;
}
callback(null, wordList.map(function(ea) {
return {name: ea.word, value: ea.word, meta: "optional text"}
}));
}
$.getJSON
将使用 AJAX 调用服务器。它只是一个 shorthand 方法,用于执行 GET 请求,在响应中接受 application/json
。
我想扩展 Ace Editor 的补全,我需要 json 个单词,这是我的代码:
function load_completions() {
var object = $('#preview').attr('class');
$.ajax({
type: "POST",
url: "test_editor_ajax.php",
data: {action:'load_completion', object:object},
cache: false,
success: function(json){
var adminCompleter = {
getCompletions: function(editor, session, pos, prefix, callback) {
if (prefix.length === 0) { callback(null, []); return }
$.getJSON(json, function(wordList) {
callback(null, wordList.map(function(ea) {
return {name: ea.word, value: ea.word, meta: "optional text"}
}));
})
}
}
langTools.addCompleter(adminCompleter);
}
});
return false;
}
getJSON
函数需要 url 到 json 文件,但我已经用 ajax 在本地创建了 json,你怎么看在上面的代码中,ajax 调用 return a json 我以这种方式生成:
echo json_encode($completions);
和 $completions
是一个数组,所以我的问题是如何在该函数中使用它?
JSON 是 JavaScript Object Notation,因此:[]
或 {}
是 JSON.
我猜你只需要:
getCompletions: function(editor, session, pos, prefix, callback) {
if (prefix.length === 0) {
callback(null, []);
return;
}
callback(null, wordList.map(function(ea) {
return {name: ea.word, value: ea.word, meta: "optional text"}
}));
}
$.getJSON
将使用 AJAX 调用服务器。它只是一个 shorthand 方法,用于执行 GET 请求,在响应中接受 application/json
。