0

我的控制器:

@products = Product.all

我的观点:

<%= javascript_tag "var products = #{@products.to_json};" %>
<%= form_for @dolist, :html => { :class => 'form-horizontal' } do |f| %>
    <%= f.text_field :product, autofocus: true, placeholder: "product", autocomplete: "off", id: "products", data: {provide: "typeahead"} %>
     <div class="form-actions">
         <%= f.submit 'Submit', :class => 'btn btn-primary' %>
      </div>
<% end %>

预输入对我不起作用,我一定遗漏了一些东西。

4

1 回答 1

-1

看来您没有提供data-source,data-source应该是一个表示数组的字符串。喜欢:

<input type="text" data-provide="typeahead" data-source="[&quot;Alabama&quot;,&quot;Alaska&quot;,&quot;Arizona&quot;,&quot;Arkansas&quot;]"/>

这是一个小提琴:http: //jsfiddle.net/bigxiang/fTNwg/

在您看来,@products.to_json如果格式正确,您可以使用 .

在复杂的情况下,您可以直接使用javascript:

<%= f.text_field :product, autofocus: true, placeholder: "product", autocomplete: "off", id: "products"%>
<%= javascript_tag "var products = #{@products.to_json};" %>
<script type="text/javascript">            
  $('#products').typeahead({
    source: products
    #other options like events
  });
</script>

见文件: http: //getbootstrap.com/2.3.2/javascript.html#typeahead

于 2013-09-09T04:14:20.123 回答