从外部更新 angular 个视图
updating angular view from outside
我在 window 对象上有一个函数可以更改我的 angular4 应用程序中的数据,但是在我单击 [=23= 中的输入之一之前,视图不会更新] 应用程序。有没有办法让它立即更新?
我认为这与 Angular 区域有关,对吗?
代码:
在下面的代码中,vm 引用了我的 Angular 组件。
window.callback = function(data) {
vm.setKey(data.result);
}
下面的函数在 Angular 组件中,并且正确地正确设置了数据,但是直到再次与应用交互时它才在视图中更新。
setKey(result) {
this.key = result;
}
如果您想在函数中手动触发 Angular 变化检测循环,您可以将对 ChangeDetectorRef
的引用注入到组件中,然后调用 detectChanges()
方法开火。
看起来像这样:
// import ChangeDetectorRef
import { ChangeDetectorRef } from '@angular/core'
// Your component's constructor
constructor(changeDetector : ChangeDetectorRef)
{ ... }
// Your setKey method
setKey(result) {
this.key = result;
this.changeDetector.detectChanges();
}
您可以在 Angular 此处详细了解变化检测的工作原理:https://blog.thoughtram.io/angular/2016/02/22/angular-2-change-detection-explained.html
我在 window 对象上有一个函数可以更改我的 angular4 应用程序中的数据,但是在我单击 [=23= 中的输入之一之前,视图不会更新] 应用程序。有没有办法让它立即更新?
我认为这与 Angular 区域有关,对吗?
代码:
在下面的代码中,vm 引用了我的 Angular 组件。
window.callback = function(data) {
vm.setKey(data.result);
}
下面的函数在 Angular 组件中,并且正确地正确设置了数据,但是直到再次与应用交互时它才在视图中更新。
setKey(result) {
this.key = result;
}
如果您想在函数中手动触发 Angular 变化检测循环,您可以将对 ChangeDetectorRef
的引用注入到组件中,然后调用 detectChanges()
方法开火。
看起来像这样:
// import ChangeDetectorRef
import { ChangeDetectorRef } from '@angular/core'
// Your component's constructor
constructor(changeDetector : ChangeDetectorRef)
{ ... }
// Your setKey method
setKey(result) {
this.key = result;
this.changeDetector.detectChanges();
}
您可以在 Angular 此处详细了解变化检测的工作原理:https://blog.thoughtram.io/angular/2016/02/22/angular-2-change-detection-explained.html