jqueryui使用Google Apps脚本中的外部数据自动完成

时间:2015-11-13 00:05:33

标签: jquery json jquery-ui google-apps-script autocomplete

我尝试在Google表格边栏中查询外部JSON / JSONP API,并使用它来填充侧边栏中的jqueryui自动完成小部件。

demo code from the jqueryui documentation在边栏内不起作用。加载微调器旋转,但列表从不填充。我认为这是GAS沙箱的安全限制。

我的下一个想法是在服务器端执行JSON查询,并从自动完成框调用服务器端请求。这是我的服务器端代码:

function getNames(name) {
  var base = "http://gd.geobytes.com/AutoCompleteCity?q="
  var url = base + name
  return apiQuery(url);
}

function apiQuery(url) {
  var json = UrlFetchApp.fetch(url).getContentText();
  var data = JSON.parse(json);
  return data;
}

在我的<script>

$(function() {
  $( "#sponsorsearch" ).autocomplete({
      source: function( request, response ) {
        var results = google.script.run.getNames(request.term); 
        response(results);
      },
      minLength: 3,
      delay:500
       });
});

HTML的相关内容:

<ul>
 <li><label><input id="sponsorsearch"><span class="small">City name</span></label></li>
</ul>

为什么这不起作用的任何想法?

1 个答案:

答案 0 :(得分:0)

var results = google.script.run.getNames(request.term);无效。你需要运行类似的东西:

function getData(){
google.script.withFailureHandler('getNamesReturn').run.getNames(request.term);
};

function getNamesReturn(results){
//results is the the return data from getNames; 
Add the jQuery autocomplete code here
};