草庐IT

javascript - Angular 2 runOutsideAngular 仍然改变了 UI

coder 2024-05-09 原文

根据我对runOutsideAngular()的理解,如果我需要运行不会触发 Angular 变化检测的东西,我需要使用这个函数。但是,我的代码不起作用;当我点击按钮时,UI 发生变化,数字为 2。

@Component({selector: 'my-cmp', 
template: `<h1>{{num}}</h1>
           <button (click)="onClick()">Change number</button>`})

class MyComponent implements OnChanges {

  num = 1; 
  constructor(private _ngZone: NgZone ) {

  }

  onClick() {
    this._ngZone.runOutsideAngular(() => {
      this.num = 2;
    }}));
  }
}

最佳答案

如果有任何东西引起了变化检测,并且像 (click)="onClick()" 这样的绑定(bind)事件确实引起了变化检测,那么 Angular 将检测到变化。

runOutsideAngular 并不意味着 Angular 不会看到变化,它只意味着以这种方式运行的代码不会导致变化检测,但是因为点击事件已经发生了,所以它在你的榜样。

关于javascript - Angular 2 runOutsideAngular 仍然改变了 UI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40300635/

有关javascript - Angular 2 runOutsideAngular 仍然改变了 UI的更多相关文章

随机推荐