jsconfcn / hangjs

JS Conf China 2014: A two-day conference for Chinese Javascript & Node.js developer community, to be held in Hangzhou
http://2014.jsconf.cn
98 stars 26 forks source link

老雷 #48

Open leizongmin opened 10 years ago

leizongmin commented 10 years ago

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 }}
JacksonTian commented 10 years ago

为嘛关掉呢?

leizongmin commented 10 years ago

后来仔细想了想,好像也没啥高上大的内容

JacksonTian commented 10 years ago

可以作为一个light topic. 5分钟演讲。

在 2014年4月15日,下午4:22,雷宗民 notifications@github.com 写道:

后来仔细想了想,好像也没啥高上大的内容

— Reply to this email directly or view it on GitHub.

clonn commented 10 years ago

reopen 的好啊,真想聽聽 @leizongmin 的 lightining talk.

xiaojue commented 10 years ago

支持