javascript - 如何控制 json 呈现的内容?

标签 javascript jquery ruby-on-rails json rendering

我正在使用 Typeahead 来显示建议的下拉列表:

Controller :

def typeahead
  render json: User.where(name: params[:query])
end

查看:

<input type="text" id="typeahead">
<script type="text/javascript">
  var bloodhound = new Bloodhound({
    datumTokenizer: function (d) {
      return Bloodhound.tokenizers.whitespace(d.value);
    },
    queryTokenizer: Bloodhound.tokenizers.whitespace,

    remote: '/typeahead/%QUERY', 
    limit: 50
  });
  bloodhound.initialize();

  $('#typeahead').typeahead(null, {
    displayKey: 'name',
    source: bloodhound.ttAdapter()
  });

  $('#typeahead').bind('typeahead:selected', function(event, datum, name) {
    doSomething(datum.id);
  });
</script>

它会显示一个 User.name 列表。例如,我如何为每个用户呈现一个 User.email

最佳答案

displayKey 要么期望显示建议对象的字段名,要么一个函数将建议对象转换为字符串。

$('#typeahead').typeahead(null, {
    displayKey: function(suggestion){
        return suggestion.name + " " + suggestion.email; 
    },
    source: bloodhound.ttAdapter()
});

关于javascript - 如何控制 json 呈现的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28229691/

相关文章:

3d 数组的 Javascript "Cannot set property"

javascript - 如何使用 EntityManager 的 saveChanges() 方法保存单个实体?

javascript - Angular 路由错误和正确的方法?

javascript - 使用 javaScript 在循环中使用具有 html 元素的变量

javascript - jQuery Mobile -> 页面生命周期?

javascript - 正则表达式检测前导零并检查 0 到 12 位数字的长度

javascript - 使用 JS/JQuery/PHP 阻止所有网站 cookie(并重新启用它们)

ruby-on-rails - 使用 beginning_of_month 时 Rails 5 中的时区

sql - ActiveRecord 连接

ruby-on-rails - Nginx/ unicorn : Upstream timed out (110: Connection timed out) while reading response header from upstream