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