我有一个Angular 2(beta 0)组件,其值根据Angular之外的代码而变化。我可以听到这个并在发生这样的更改时执行代码,但我不知道要运行什么代码来强制Angular 2视图更新。
如果我在初始化组件时获取对正在运行的NgZone的引用,我可以调用ngZone.run(function() { /* do nothing */});
并强制进行更新。但是,我不知道我应该做些什么,即使是这样,我也不确定什么是获取我的应用程序的ngZone参考的合法方式
我该怎么做?
[编辑]在Angular 1.x中,我会$scope.$apply()
,但那不在Angular 2中。其他人建议做一个setTimeout(function() { /* do stuff */ })
,但似乎没有被NgZone迷住( 被正常区域挂钩),因此不会触发检查更改。
答案 0 :(得分:0)
我明白了。与Angular 1不同,并非所有组件的可注入依赖项都可以从参数名称中推断出来。在我的情况下,我可以访问NgZone然后绑定区域中的更改,如下所示:
B,C,D