我正在使用最新的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