javascript 在EJS模板中筛选

pcrecxhr  于 2023-04-28  发布在  Java
关注(0)|答案(2)|浏览(130)

我正在尝试渲染一个数组并在EJS中应用过滤。
我想循环遍历数组并按名称升序排序。
文档没有给予很多关于过滤方法的直接信息
浏览次数:

<select>
<% for( var i=0; i < genres.length; i++){ %>
    <option value="<%=: genres[i].name | sort_by:'asc' %>"><%= genres[i].name %></option>
 <% }; %>
</select>

售后服务:

var express = require('express'),
ejs = require('ejs');

const genres = [{ name: 'action' }, { name: 'fiction' }, { name: 'thriller' }];

ejs.filters.sort_by = function() {
     console.log(genres)
  };

错误:

SyntaxError: Unexpected token ':'
osh3o9ms

osh3o9ms1#

https://www.javascripting.com/view/ejs阅读这篇文章,我想这回答了我的问题。
注意:EJS版本2在这个版本中做了一些突破性的更改(特别是删除了过滤器功能)。V2的工作正在这里进行:https://github.com/mde/ejs
https://github.com/mde/ejs/blob/master/docs/syntax.md

vmjh9lq9

vmjh9lq92#

数组的排序可以在EJS模板中用纯Javascript完成:

<select>
    <% genres.sort((a,b) => (a.name > b.name) ? 1 : ((b.name > a.name) ? -1 : 0)) %>
    <% for (const genre of genres) { %>
        <option value="<%= genre.name %>"><%= genre.name %></option>
    <% } %>
</select>

关于单行排序的详细解释可以在here中找到。

相关问题