首页 > 解决方案 > rails slim template: Uncaught SyntaxError: Unexpected token if

问题描述

我有一个苗条的模板previews.slim

= render 'previews/demo_areas/skinny_demo_area', p_unit: @p_unit, size: 2

我在该文件上添加了 javascript:

javascript:
  var rotationIndex = 0;
  var auto_rotate = #{@p_unit.auto_rotate_highlight};
  - if auto_rotate
    rotateTextOverAds();

  function rotateTextOverAds() {
    var size_300x250_ads = $('.carousel_ad_unit.size_9700x250 .ad .ad-details');
    $('.carousel_ad_unit.size_9700x250 .ad').each(function () {
      $(this).find('.ad-details').hide();
    });

    rotationIndex += 1;
    if rotationIndex > size_300x250_ads.length
      rotationIndex = 1;
    size_300x250_ads[rotationIndex - 1].style.display = 'block';

    setTimeout(rotateTextOverAds, 2000)
  }

基于rails实例变量@p_unit.auto_rotate_highlight属性,我想运行一个函数。但是当我加载页面时,我的浏览器一直显示:

Uncaught SyntaxError: Unexpected token if

我该如何解决这个问题?

标签: javascriptruby-on-railsslim-lang

解决方案


如果条件如下所示,您在 javascript 中混合了 javascript 语法和 ruby​​(slim) 语法:

if (condition) {
  // some code here
}

推荐阅读