我正在使用最新的Angular 2 beta(45?),并试图将ngClass附加到由指令选择器标识的元素。用于切换类的变量不会更新。Angular2 - 指令选择器上的ngclass
我怀疑这是两件事情之一:
- Angular2只是不工作的方式,所以这是一个范围界定问题;如果我 在指令选择器元素内部放置一个div并将ngClass附加到该div,它就可以工作。我宁愿不要那样做。
- 因为我对窗口事件作出反应。我试过使用Observers, setTimeout hackery和区域。没有运气。
有没有办法做我想做的事情?那不就是如何做了吗?
示例代码从存储器中写,因为我没有当前访问它:
@Directive({
selector: "nav",
templateUrl: "templates/nav.html"
});
export class NavComponent {
isOpen:Boolean = false;
onScroll(e) {
this.isOpen = true;
}
window.onscroll = (e) => this.onScroll.call(this); // .call seemed necessary, because otherwise the scope of 'this' changed to window instead of the directive
}
下不起作用:
的index.html
<nav [ngClass]="{open: isOpen}"></nav>
templates/nav.html
<a href="#">whatever</a>
...
<a href="#">whatever 2</a>
下不工作:
的index.html
<nav></nav>
模板/ nav.html
<div [ngClass]="{open: isOpen}">
<a href="#">whatever</a>
...
<a href="#">whatever 2</a>
</div>
'我使用的是最新的角2β(45?)'给予好评的笑。 –
哈哈我知道的权利。介于0到1000之间。 – oooyaya