这是我第一次来SO。我关心的是我得到了
Uncaught TypeError: $(...).pickadate is not a function
控制台中出现错误。
在此之前,我能够包含在Javascript [F12 in Chrome]中检测到的文件(picker.js,picker.date.js,picker.time.js)。
以下是其他代码:
_form.html.erb
<div class="pure-control-group">
<%= t.label :start_date %>
<%= t.text_field :start_date, class: 'datepicker' %>
</div>
的application.js
//= require_self
//= require jquery
//= require rails-ujs
//= require angular
//= require angular-animate
//= require angular-resource
//= require picker
//= require picker.date
//= require picker.time
//= require globals
//= require users
globals.js
$(document).ready(function(){
$('p').click(function(){
$(this).hide();
});
$('.datepicker').pickadate();
});
答案 0 :(得分:0)
对我来说,这样的问题是由我正在使用的jquery引起的,或者缺少它。我不得不使用yarn安装jquery:
yarn add jquery
完成后,应将其包含在您的node_modules
文件夹中。确认您的config/initializers/assets.rb
中包含以下行:
Rails.application.config.assets.paths << Rails.root.join('node_modules')
然后您可以像这样在您的assets/application.js
中加入jquery:
//= require jquery/dist/jquery
由于某种原因,我无法获得jquery-rails
软件包。
您可以找到具有更详细说明Read more here的相关资源,尽管它是用于在导轨上安装引导程序的资源,但它与导轨具有相同的概念。
此外,请确保您的Gemfile中包含pickadate-rails
个gem,并且您已经运行了$ bundle install
。将这些更改保留在您的application.js
//= require picker
//= require picker.date
//= require picker.time
进行更改后也重新启动服务器。
有关如何在rails上实现jquery-rails的更多信息,请查看以下链接: here
答案 1 :(得分:-1)
你可以试试这个
$(document).ready(function(){
$('p').click(function(){
$(this).hide();
});
$('.datepicker').pickadate(
selectMonths: true, // Creates a dropdown to control month
selectYears: 3 // Creates a dropdown of 15 years to control year
});
);
});
或者如果我没有解决你的问题那么你可以尝试在gemfile中添加gem然后运行命令的rails方式。 pickadate最好的宝石是pickadate-rails