我想创建一个指令来决定它的宿主元素是否应该出现在页面上。理想情况下,我希望它从 DOM 中删除元素,而不仅仅是用 css 隐藏/显示它。用例是:
<ul role="navigation">
<li><a>public link</a></li>
<li><a>public link2</a></li>
<li access="admin"><a>admin-only link</a></li>
</ul>
它将使用 UserService 获取 currentUser 角色,如果那里没有管理员,li
则将被删除。
ng-if
我想我可以通过传递表达式在主要组件中进行评估来实现相同的效果(如果它在角度 2 中仍然可用)。但是使用指令它更加语义化和优雅。
可能吗?
import {Directive} from 'angular2/angular2';
@Directive({
selector: 'access'
})
export class Access {
//what goes here
}
我可以在 Angular 1(内部指令的compile
函数)中轻松做到这一点,但是如何在 Angular 2 中做到这一点?