Dust.js 模板自定义助手 Bootstrap 行为不一致
Dust.js Template Custom Helper in Bootstrap Inconsistent Behaviour
我有一个 Dust.js 助手,我在其中应用了一些 acl 逻辑,如下所示:
'use strict';
import dust from 'dustjs-linkedin';
import acl from '../config/acl';
dust.helpers.accessControl = function(chunk, context, bodies, params) {
let userId = params.userId;
let resource = params.resource;
let permission = params.permission;
acl.acl.isAllowed(userId, resource, permission, function(err, res){
if(res){
chunk.render(bodies.block, context);
return chunk;
}
else {
return chunk;
}
});
};
在模板中:
{@accessControl userId=user._id resource="/admin" permission="get"}
<li class="nav-item">
<a class="nav-link" ng-class="{'active' : getPath()[0] == 'admin'}" href="/admin">Admin</a>
</li>
{/accessControl}
使用正确的参数正确调用助手,node_acl 正确授权用户(回调中的 res
是 true
)。在我的模板中的许多地方,它显示了预期的行为,除了 Bootstrap 3 导航栏,它通常不呈现任何内容,有时在导航栏中的 ul 下方:
有什么想法吗?请注意,我正在使用 Angular 将活动 class 放入链接中,它不是 SPA 并且深层链接已禁用,但它应该无关,因为模板正在服务器上呈现 -边。谢谢!
node_acl 的请求是异步的。我需要将我的助手更改为:
dust.helpers.accessControl = function(chunk, context, bodies, params) {
let userId = params.userId;
let resource = params.resource;
let permission = params.permission;
return chunk.map(function(chunk) {
acl.acl.isAllowed(userId, _reverse(resource), permission, function(err, res){
if(res && bodies['block']) {
return chunk.render(bodies['block'], context).end();
}
else {
return chunk;
}
});
});
};
克服乱序的块。
我有一个 Dust.js 助手,我在其中应用了一些 acl 逻辑,如下所示:
'use strict';
import dust from 'dustjs-linkedin';
import acl from '../config/acl';
dust.helpers.accessControl = function(chunk, context, bodies, params) {
let userId = params.userId;
let resource = params.resource;
let permission = params.permission;
acl.acl.isAllowed(userId, resource, permission, function(err, res){
if(res){
chunk.render(bodies.block, context);
return chunk;
}
else {
return chunk;
}
});
};
在模板中:
{@accessControl userId=user._id resource="/admin" permission="get"}
<li class="nav-item">
<a class="nav-link" ng-class="{'active' : getPath()[0] == 'admin'}" href="/admin">Admin</a>
</li>
{/accessControl}
使用正确的参数正确调用助手,node_acl 正确授权用户(回调中的 res
是 true
)。在我的模板中的许多地方,它显示了预期的行为,除了 Bootstrap 3 导航栏,它通常不呈现任何内容,有时在导航栏中的 ul 下方:
有什么想法吗?请注意,我正在使用 Angular 将活动 class 放入链接中,它不是 SPA 并且深层链接已禁用,但它应该无关,因为模板正在服务器上呈现 -边。谢谢!
node_acl 的请求是异步的。我需要将我的助手更改为:
dust.helpers.accessControl = function(chunk, context, bodies, params) {
let userId = params.userId;
let resource = params.resource;
let permission = params.permission;
return chunk.map(function(chunk) {
acl.acl.isAllowed(userId, _reverse(resource), permission, function(err, res){
if(res && bodies['block']) {
return chunk.render(bodies['block'], context).end();
}
else {
return chunk;
}
});
});
};
克服乱序的块。