Я комбинируя Connect-роли с шаблоном пыли шаблон EJS есть что-то вроде этого синтаксисаВызов функции и проверки результатов в DustJs
<% if (userCan('impersonate')) { %>
<button id="impersonate">Impersonate</button>
<% } %>
и что в нефрите
if userCan('impersonate')
button#impersonate Impersonate
Как сделать это в пыли?
{@eq key=userCan('edit data') value="true" }
<td><a href='/assets/edit/{.ID_ASSET}'>Edit</a></td>
<td><a href='/assets/delete/{.ID_ASSET}'>Delete</a></td>
{:else}
{/eq}
Этот код получить мне ошибку
Wed, 06 Jan 2016 16:57:47 GMT uncaughtException Expected end tag for assets but it was not found. At line : 42, column : 13
Edit: У меня есть это в {@contextDump key="full"/}
"tail": {},
"isObject": true,
"head": {
"enrouten": {
"routes": {},
"path": "function path(name, data) {var route;route = this.routes[name];if (typeof route === 'string') {return path2regexp.compile(route)(data);}return undefined;}"
},
"userIs": "function (action) {var act = ert(req, action);return roles.test(req, act)}",
"userCan": "function (action) {var act = ert(req, action);return roles.test(req, act)}",
"isAuthenticated": "function() { [native code] }",
"_csrf": "FSaqN0PWxOF4slTUfnGHXJ0NkPOTJFl0u57eM=",
"title": "Справочник спецификаций",
"assets": [
{
"ID_ASSET": 1,
"SYMBOL_KODE": "12.TR.18",
"DOK_NAME": "ТХ9042",
"DESCRIPTION": "Контроллер программируемый ТХ9042",
"DATE_RELISE": "2001-10-04T21:00:00.000Z",
"POS_KODE": "pos kode 1 ",
И это мой контроллер
router.get('/', function (req, res) {
var context = {
req: req, // from Express callback
userCan: function(chunk, context, bodies, params) {
var permission = context.resolve(params.permission);
return context.get('req').userCan(permission);
}
}
models.SPR_ASSET.findAll({
include: [ models.SPR_TYPE_UM, models.SPR_TYPE_ASSETS, models.SPR_ASSETS_DS ]
}).then(function(assets) {
res.render('assets', {
title: 'Справочник спецификаций',
assets: assets
context: context
});
});
var context
здесь не работает
У меня есть userCan func в моем объекте req в контроллере, но я не видел его ни в одном параметре в помощнике пыли, просто я не могу вызвать req.userCan («что-то») из шаблона пыли –
Если 'userCan' является request-scoped, вам нужно будет написать хелпер контекста и передать объект запроса в ваш контекст. – Interrobang
Этот контекст var должен быть в маршрутизаторе? и передать его для просмотра? затем (функция (активы) { res.render ('assets', { title: 'Title', context: context }); }); Это не сработало.И я не могу получить req in view –