我正在尝试在Ryan Bates Railscast nbr 258之后将tokeninput集成到我的小rails应用程序中。
因此,
我在供应商目录中添加了tokeninput文件
然后,我更改了application.js文件:
//
//= require jquery
//= require jquery_ujs
//= require jquery.tokeninput
//= require bootstrap
//= require chosen-jquery
//= require jquery_nested_form
//= require bootstrap-datetimepicker.min
//= require_tree .
然后我将此代码添加到文件category.js.coffee中
jQuery ->
$('#company_category_list').tokenInput('/categories.json',
theme: 'facebook'
prePopulate: $('#company_category_list').data('load')
)
当我进入表单时,浏览器控制台会显示:
TypeError: $(...).tokenInput is not a function
[Break On This Error]
prePopulate: $('#company_category_list').data('load')
我已经找了几个小时,但找不到该错误的原因。资产管道似乎已正确加载了jquery.tokeninput文件。
任何帮助,建议欢迎!
最佳答案
总结一下:
我遇到的问题是由于我曾经对我的资产进行过预编译,然后决定即时进行编译:
在开发人员模式下调试不方便
Heroku在推送代码时自动管理预编译
预编译在我的公用文件夹中创建资产的缩小版本。
当我运行我的网站时,所有的javascript文件都会被加载两次:一次是从公用文件夹中加载,另一次是从正常流程中加载。
我刚刚删除了公用文件夹中的内容,这解决了我的问题。
关于jquery - Rails的jquery tokeninput返回“不是函数”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17693698/