Хорошо, я нашел решение своей проблемы. Это обходной путь, а не тот способ, которым я изначально собирался решить проблему. Мои первые попытки заключались в том, чтобы встроить вызов ajax в функцию «ace.define», но она не обрабатывала его правильно, и некоторые части отсутствовали, вызывая ошибки. Затем я попытался динамически импортировать ключевые слова, но не смог заставить это работать в среде Python. Наконец, я решил просто обернуть все это успехом вызова ajax, и теперь он работает точно правильно. Я предполагаю, что при внедрении в функцию ace синхронизация между событиями ajax и другими частями определения была несинхронизированной.
Таким образом, ответ вкратце состоит в том, чтобы обернуть все определение в обратный вызов успеха ajax.
$.ajax({
url: "/readUserCreatedKeywords",
type: "POST",
success: function(response){
var keywordsString = "";
var tmpArr = response.split(",");
var tmpArrLen = tmpArr.length;
var s = 0;
var halfNum = 0;
while (s < tmpArrLen) { // Clean array and save keywords and args into respective arrays
halfNum = parseInt(s/2);
tmpArr[s] = tmpArr[s].replace("u'", "").replace("[", "").replace("'", "").replace("(u", "").replace(")", "").replace("]", "").replace("(", "").replace(" ", "");
if (s % 2 == 0){ //Store even values in keywords
keywordsString += tmpArr[s] + "|";
//console.log("tmpArr[" + s + "]" + tmpArr[s]);
}
s++;
}
ace.define("ace/mode/python_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) {
...............................................lots of code..........................................
exports.Mode = Mode;
});
}
});
person
Mark Bellamy
schedule
17.12.2014