【发布时间】:2015-03-24 10:58:38
【问题描述】:
我正在尝试使用twitter-typeahead-rails。我的意图是在我输入“#Typeahead”输入框时通过下拉框建议模型“用户”的实例。但是,当我键入时没有任何反应。
有人发现我的代码有什么问题吗?
宝石文件:
gem 'twitter-typeahead-rails'
layouts/application.js:
//= require twitter/typeahead
//= require twitter/typeahead/bloodhound
config/routes.rb:
get 'typeahead/:query' => 'users#typeahead'
controllers/users_controller.rb:
def typeahead
render json: User.where(name: params[:query])
end
views/users/show.html.erb:
<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>
我在 Web 控制台中没有收到任何错误,并且显然包含了所有必要的文件:
页面来源
<script data-turbolinks-track="true" src="/assets/twitter/typeahead.bundle.js?body=1"></script>
<script data-turbolinks-track="true" src="/assets/twitter/typeahead.js?body=1"></script>
<script data-turbolinks-track="true" src="/assets/twitter/typeahead/bloodhound.js?body=1"></script>
网络控制台:
【问题讨论】:
标签: javascript jquery ruby ruby-on-rails-4 typeahead.js