認証サービスから指示された場合にのみレンダリングするディレクティブがあります。
<div my-loggedin-directive ng-if="security.isAuthenticated()"></div>
ディレクティブ自体は非常に空です:
.directive('myLoggedinDirective', [
function() {
return {
templateUrl: 'modules/myLoggedinDirective.tpl.html',
restrict: 'A',
replace: true,
link: function($scope) {
$scope.$on('$destroy', function() {
console.log('$destroy');
});
}
};
}
]);
ディレクティブはログイン時に常にレンダリングされる必要があるため、ngIf ロジックは ng-if ではなく、ディレクティブ宣言内にある必要があります (ngIf のないディレクティブは完全に壊れてしまいます)。
と同じ動作が必要であることを認識して、ディレクティブ コードを変更するには (ディレクティブ宣言内のセキュリティ サービスにテストを挿入する)、どうすればよいngIf
ですか? :
nfIf
に解決される場合にのみ DOM に存在するディレクティブtrue
nfIf
解決時に $destroy の自動呼び出しfalse
) ?
compile
関数と監視するウォッチャーを使用しようとしましたsecurity.isAuthenticated()
が成功しませんでした