代码之家  ›  专栏  ›  技术社区  ›  Sauronlord

如何在JST Undercore模板中访问Rails asset_path?

  •  1
  • Sauronlord  · 技术社区  · 9 年前

    我需要从前端用于渲染的JST模板访问图像的asset_path 核心模板。

    例如:

    过滤器项目jst.js

    <div class="filter-item">
        <a href="#" class="thumbnail filter-select" data-preset="<%= preset %>">
            <img src="<%= asset_path('balloons.jpg') %>"><br/>
        </a>
    </div>
    

    如何从模板中解析“asset_path”以使用Rails资源管道?同时,我希望能够在运行时传递Undercore模板中的变量“预设”。

    例子:

    var rendered=JST[“myapp/templates/filter_item”]({预设:“mypreset”});

    我希望“渲染”包含HTML,如下所示:

    <div class="filter-item">
        <a href="#" class="thumbnail filter-select" data-preset="mypreset">
            <img src="/assets/balloons-ASSETHASH.jpg"><br/>
        </a>
    </div>
    
    1 回复  |  直到 9 年前
        1
  •  1
  •   aviemet    9 年前

    几个月大了,但我最近也在挣扎。 Found the answer on the github page for sprockets

    添加扩展名 .str 您可以在字符串内插标记中使用ruby/rails方法: #{ ... }

    因此,上面修改为使用字符串插值的代码将起作用:

    // filter_item.jst.ejs.str
    
    <div class="filter-item">
        <a href="#" class="thumbnail filter-select" data-preset="mypreset">
           <img src="#{ asset_path('balloons.jpg') }"><br/>
        </a>
    </div>
    

    至于 data-preset 变量,我对资产管道的工作方式不够熟悉,无法确定上述方法是否适用。