带有express和ejs文件的jiren / filter.js-冲突

时间:2018-08-15 13:28:53

标签: javascript express filter ejs

我正在使用express / sequelize和ejs文件创建一个应用程序。 现在,我想使用Jiren提供的出色的过滤器解决方案,但是该解决方案使用的语法与ejs变量相同。 当我在脚本标签type="text/html"中将带有这些变量的模板包含在模板中时,它会触发一个错误(未定义,但出现在我的包含行中)。当我将模板更改为“ john do”时,页面正在显示,但是我的控制台为我带来了“未定义错误JSONquery”(我不确定这是两个不同的错误,但JSONquery是filter.js插件的一部分) 。我可以在这里向您展示我的模板

<script id="artists-template" type="text/html">
    <li 
         class="main__product-list-item" 
         data-height="<%= height %>" 
         data-width="<%= width %>" 
         data-low="<%= yearBegin %>"
         data-high="<%= yearEnd %>" 
         data-name='<%= artist %>' 
         data-longueur='<%= height %>' 
         data-largeur='<%= width%>'
         >
            <figure class="main__product">
             <a class="main__product-image-link" href="/name/<%= id %>">
            <% if(Images.length !== 0) { %>
            <img alt="illustration" src="./img/_thumb<%= Images[0]['adress'] %>.jpg"/>
            <% } else { %>
            <img alt="illustration" src="./img/icon-no-image.svg"/>
            <% } %>
        </a>
        <figcaption class="main__product-description">
            <h3>
               <a href="/name/<%= id %>">
                  <span class="product__title">"<%= title %>" - <%= artist %></span>
                   <span class="product__date">, <span class="product__period"><%= period %></span></span>
                </a>
            </h3>
            <p>
            Créé probablement entre <span class="product__low-date"><%= yearBegin %></span> et <span class="product__high-date"><%= yearEnd %></span>
            <br/>Hauteur : <span class="product__height"><%= height %></span>  cm / Largeur : <span class="product__width"><%= width %></span> cm

            <span class="main__product-description-story"><%= description %></span></p>
        </figcaption>
    </figure>
     </li>
 </script>

当我只注入一个像<%= artist %>这样的变量时,这是同样的问题。这是我绑定数据的方式:

<% var datas = JSON.stringify(creations) %>
<script>
    var data = <%- datas %>;
    console.log(data);
 </script>

我希望这只是一个简单的问题,我只需要更改一个简单的字符即可使其起作用。目前,我认为最大的问题是有关“未定义JsonQUERY”的问题,因为即使我没有将模板与数据绑定,实际上必须绑定模板的区域也没有绑定。 我试图用谷歌搜索错误,但没有发现任何问题。如果有人有任何想法...谢谢。

这是过滤器解决方案的网站:https://github.com/jiren/filter.js

1 个答案:

答案 0 :(得分:0)

万岁!我找到了解决方案,我用egoogle冲突了,发现重点是更改插件语法:如果遇到相同的问题,请尝试更改这些行:

var templateSettings = {
    evaluate    : /<%([\s\S]+?)%>/g,
    interpolate : /<%=([\s\S]+?)%>/g,
    escape      : /<%-([\s\S]+?)%>/g
 };

这些

var templateSettings = {
   interpolate: /\{\{(.+?)\}\}/g,
   escape: /\{\{\-(.+?)\}\}/g,
   evaluate: /\{\%(.+?)\%\}/g
};

现在我只需要使用以下语法:{{variable}}并且它可以正常工作!