Skip to content

老雷 #48

@leizongmin

Description

@leizongmin

Github: @leizongmin
Topic: 异步的模板引擎
Weibo: @雷宗民

介绍一个可以在模板中调用异步函数的模板引擎 tinyliquid 和简单的应用


比如,在PHP中,如果要在模板中输出某个用户ID的昵称,可能会这样写:

昵称:<?php echo get_user_display_name(user_id) ?>

如果是在Node.js中,则需要在渲染模板之前查询出来:

get_user_display_name(user_id, function (err, name) {
  res.locals.display_name = name;
  res.render('template');
});

然后才能才模板中使用:

<%= display_name %>

某些可以允许用户自己修改模板的场合,只能把所有可能用到的数据查询出来,然后再渲染。

而使用 tinyliquid 模板引擎时,则可以在模板引擎中注册一个异步函数来获取数据, 仅当模板中用到时再查询数据,相当灵活

setAsyncFilter('get_user_display_name', get_user_display_name);

然后直接在模板中调用:

昵称:{{ user_id | get_user_display_name }}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions