タグ付きのTextextjs オートコンプリートを使用しています
上記の例のリストは、単純な json 配列です。
そして、その値を ajax 関数から取得したいと考えています。
この場合、ajax 呼び出しは遅く実行されます。したがって、期待される結果が妨げられます。以下のコードを見てください
$('#textarea')
.textext({
plugins : 'tags autocomplete'
})
.bind('getSuggestions', function(e, data)
{
console.log(1);
search_text = (data ? data.query : '') || '';
var urll = 'url_to_get_result';
// call ajax function
var suggestionss = getSuggestions(search_text, urll);
console.log(4);
$("#output1").val();
var list = suggestionss,
textext = $(e.target).textext()[0],
query = (data ? data.query : '') || '';
$(this).trigger(
'setSuggestions',
{ result : textext.itemManager().filter(list, query) }
);
});
function getSuggestions(search_text, urll)
{
console.log(2);
$.ajax({
'url': urll,
'data': {'wt':'json'},
type: 'GET',
'success': function(data) {
jsonObj = [];
var count = data.count.length;
for(i=0; i<count; i++)
{
var name = data.name.docs[i].term_suggest_ngram;
autosuggestitem = {}
autosuggestitem = '"'+name+'"';
jsonObj.push(autosuggestitem);
}
var result = JSON.stringify(jsonObj);
availableSearch = JSON.parse(result);
console.log(3);
$("#output1").val(availableSearch);
},
'dataType' : 'jsonp',
'jsonp': 'json.wrf'
});
var return_val = $("#output1").val();
return return_val;
}
コンソールステートメントを参照してください。これらは順番に実行されます
1 - 2 - 4 - 3
予想される動作は
1 - 2 - 3 - 4 です
誰かが私を助けることができますか?