Rails + Bootstrap 标签输入 + typeahead

Posted

技术标签:

【中文标题】Rails + Bootstrap 标签输入 + typeahead【英文标题】:Rails + Bootstrap Tags Input + typeahead 【发布时间】:2018-05-25 00:35:48 【问题描述】:

我正在尝试在 Rails 中的小项目上设置此功能:http://bootstrap-tagsinput.github.io/bootstrap-tagsinput/examples/

但我不确定我做错了什么。我将 jquery、bootstrap-tagsinput 和 typeahead.bundle 文件放到了我的 app/assets/javascript 中,但仍然无法正常工作。

我在表单中添加了:

<input type="text" data-role="tagsinput" />
<%= javascript_tag do %>
$('input').tagsinput(
  typeahead: 
    source: ['Amsterdam', 'Washington', 'Sydney', 'Beijing', 'Cairo']
  
);
<% end %>

和一个 citynames.json 到我的 app/assets 文件夹,以及添加

<link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap.min.css">

到顶部,但是虽然标签输入本身有点工作,但我无法让 typeahead 工作或添加 freeInput: false 选项并让那个工作。

【问题讨论】:

【参考方案1】:

    下载最新的bootstrap-tagsinput

    /src 获取bootstrap-tagsinput.css 并放入/assets/stylesheets/

    如果你使用 scss,将 bootstrap-tagsinput.css 重命名为 bootstrap-tagsinput.scss

    在 applications.scss @import 'bootstrap-tagsinput'require

    /src 获取bootstrap-tagsinput.js 并放入/assets/javascript/

    assets/javascript/application.js 需要你的js =//require bootstrap-tagsinput


prefetch: 
    url: 'assets/citynames.json',
    filter: function(list) 
      return $.map(list, function(cityname) 
        return  name: cityname ; );
    
  

url: 'assets/citynames.json' - 这不起作用。您可以从控制器提供 citinames 或将此文件公开,之后您可以从公共文件夹 root_url/folder/citinames.json. 获取此 json

【讨论】:

立即尝试。关于公共 - 我还没有完全弄清楚如何使用相对寻址将路径指向其中的文件。如果文件只是在我在项目根目录中的公共文件夹中,它会是“../public/citinames.json”吗? 好吧,似乎引导插件现在可以工作了!尽管如此,仍然没有提前输入。 如果你将一个文件放到/public/file.* 可以从 url 访问:http://your_url/file.* 嗯,没有办法使用相对寻址?我希望能够在我的开发环境(基本上在本地主机上)和实时(有自己的 url)上对其进行测试。编辑:我可以在视图 .erb 文件中将可能的标签作为数组传递吗? 如果你把citynames.json 放到public 那么你可以从http://localhost:3000/citynames.json得到这个json

以上是关于Rails + Bootstrap 标签输入 + typeahead的主要内容,如果未能解决你的问题,请参考以下文章

bootstrap 4导航栏在rails 5应用程序中不起作用

Rails 中的 .field_with_errors 使用插件破坏了 Twitter Bootstrap 3 输入样式

在 CSS 中使用 glyphicon 作为背景图像:rails 4 + bootstrap 3

rails使用bootstrap3-wysiwyg可视化编辑器并实现自定义图片上传插入功能

Bootstrap - 输入组插件标签宽度对齐

用于文本区域的 Bootstrap 5 浮动标签与滚动输入重叠