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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions