如何翻译 shrinkroute README 文件中的示例:
// or views...
<a href="<%= url( "user", { id: 1 }) %>">User profile</a>
<a href="<%= fullUrl( "user", { id: 1 }) %>">User profile</a>
用于玉模板?例如,像
a(href="#{ url( "user", { id: 1 }) }") User profile
提前致谢。
如何翻译 shrinkroute README 文件中的示例:
// or views...
<a href="<%= url( "user", { id: 1 }) %>">User profile</a>
<a href="<%= fullUrl( "user", { id: 1 }) %>">User profile</a>
用于玉模板?例如,像
a(href="#{ url( "user", { id: 1 }) }") User profile
提前致谢。
这是从模板中调用函数的通用解决方案;locals.buildFullUrl
有关如何在翡翠模板中使用 shrinkroute 的内置函数的具体解决方案,请参见 @gustavohenke 的回答
// node.js
var url = require('url');
// Set up locals.shrinkUrl for every request
app.all('*', function(req, res, next){
res.locals.shrinkUrl = function(path, queryObject){
var out = url.format({
pathname: path,
query: queryObject,
});
return out;
};
next();
});
// template.jade
a(href=locals.shrinkUrl("user", {id: 1}) ) User profile
// rendered
<a href='/user?id=1'>User profile</a>
首先,确保您使用的是 shrinkroute 中间件:
app.use( shrinkr.middleware );
它会自动为您提供以下助手:
req.buildUrl
和res.locals.url
- 为路线构建路径。与使用相同shrinkr.url()
。req.buildFullUrl
和res.locals.fullUrl
- 为路由构建完整的 URL。与使用相同shrinkr.fullUrl()
。在 Jade 中,您只需使用以下内容:
a(href=url( "user", { id: 1 } )) My Username
a(href=fullUrl( "user", { id: 1 } )) My Username
渲染输出:
<a href="/user/1">My Username</a>
<a href="http://localhost/user/1">My Username</a>
上面的输出将取决于您在 shrinkroute 实例中命名的路由。
免责声明:我是 Shrinkroute 的创建者。