0
に、私は次のように私はいくつかのACLロジックを適用Dust.jsヘルパー持っている:テンプレートでDust.jsテンプレートのカスタムヘルパーブートストラップ一貫性のない行動
'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
です)。私のテンプレート内の多くの場所で、それは通常、何もレンダリングしないブートストラップ3ナビゲーションバーを除き、意図した動作を表示し、時にはナビゲーションバーでUL以下:
任意の考え? Angularを使用してリンクにアクティブなクラスを配置していることに注意してください。これはSPAではなく、ディープリンクは無効ですが、テンプレートがサーバー側でレンダリングされているため、何もしないでください。ありがとう!