owlCarousel 不是 rails 应用程序中的函数

owlCarousel is not a function in rails app

提问人:Misha Krul 提问时间:8/19/2023 更新时间:8/19/2023 访问量:23

问:

我有一个 rails 应用程序,我试图使用猫头鹰轮播来显示带有图像的推荐列表。我想我已经正确设置了一切,但我仍然收到控制台错误“猫头鹰旋转木马不是一个功能”。

我已经正确安装了 gemfile。

gemfile

gem 'owlcarousel-rails'

我很确定我已将所有内容加载到应用程序.js中。app/assets/javascripts/application.js

import "@hotwired/turbo-rails";
import "controllers";
import 'owl.carousel';

//= require_tree .
//= require jquery
//= require owl.carousel
//= require jquery_ujs
//= require turbolinks

与应用程序 scss 文件相同:app/assets/stylesheets/application.scss

@import "bulma";
@import "font-awesome";
@import "owl.carousel";
@import "../stylesheets/main/main.scss";

 *
 //= require jquery
 //= require jquery_ujs
 *= require_self
 *= require owl.carousel
 */

这是我的主要观点,我有旋转木马。app/views/main/index.html.erb

<section class="testimonials-carousel-container">
  <div class="testimonials-carousel">
    <div id="owl-carousel">
      <div class="carousel-of-images">
        <div class="carousel-image">Item</div>
        <div class="carousel-image">Item</div>
        <div class="carousel-image">Item</div>
        <div class="carousel-image">Item</div>
        <div class="carousel-image">Item</div>
      </div>
      <div class="gradient-left"></div>
      <div class="gradient-right"></div>
    </div>
  </div>
</section>

控制轮播的功能:app/assets/javascripts/testimonials.js


$(document).ready(function () {
  $("#owl-carousel").owlCarousel();
});

最后,我在底部导入:testimonials.jsapp/views/main/index.html.erb

<%= javascript_include_tag "testimonials" %>

我还注意到我的 JS 输出中有大量警告,包括“owlCarousel 不是函数”错误。我不确定其他一些警告是否对此产生影响。

enter image description here

JavaScript jQuery CSS Ruby-on-Rails 轮播

评论

1赞 mechnicov 8/19/2023
如果您有涡轮导轨,您可能使用 rails7。因此,猫头鹰轮播不需要任何宝石,而是使用本机 JS 库。顺便说一句,猫头鹰旋转木马的最后一次提交是在 2019 年。jquery_ujs来自 rails4,turbo links 来自 rails6。2023 年设定很奇怪:)
0赞 Alex 8/19/2023
“我想我把一切都设置好了”——不。带有 importmaps 的 Rails 7 - 就是你所拥有的,重新开始,扔掉这个设置。我认为是新的旋转木马热度。在查找指令时,它们必须是针对 rails 7 的,你不能只找到一篇 10 年前的博客文章并期望它能工作。swiper

答: 暂无答案