angular2-changedetection相关内容

Angular2:观看除angular之外的外部变量

我希望能够观察和更新angular2之外的变量.因此,假设我在一个外部javascript文件中拥有此文件: var test = 1; 如何将此变量绑定到组件中的属性? @Component({ ... }) export class MyComponent { watchy = window.test; } 显然,根据此答案,这应该可以解决. 但事实并非如 ..
发布时间:2020-08-10 00:58:04 其他开发

带有数组突变的Angular2 ngFor OnPush变化检测

我有一个数据表组件( angular2-data-table )项目,为了优化渲染速度,将项目从Angular的传统更改检测更改为OnPush. 一旦实施了新的变更检测策略,就会发生一个错误,该错误引用了当数据对象发生突变(例如对象的属性更新)时表未更新.参考:为解决此问题,我们添加了一个名为trackByProp的自定义trackBy属性检查器.参考:提交.不幸的是,此解决方案未能解决问题 ..
发布时间:2020-08-10 00:19:36 其他开发

如何检测Angular中@Input()值何时更改?

我有一个父组件( CategoryComponent ),一个子组件( videoListComponent )和一个ApiService. 我在大多数情况下都能正常工作,即每个组件都可以访问json api并通过可观察对象获取其相关数据. 当前视频列表组件仅获取所有视频,我想将其过滤为特定类别中的视频,我是通过@Input()将categoryId传递给子对象来实现的. Cat ..
发布时间:2020-08-09 22:22:20 其他开发

markForCheck()和detectChanges()有什么区别

ChangeDetectorRef.markForCheck()和ChangeDetectorRef.detectChanges()有什么区别? 我只找到了关于SO的信息有关NgZone.run()之间的区别,但没有找到这两个功能之间的区别./p> 对于仅参考文档的答案,请举例说明一些实际情况,以供选择. 解决方案 来自文档: detectChanges():无效 检查更改 ..
发布时间:2020-08-09 22:03:37 其他开发

ExpressionChangedAfterItHasBeenCheckedError说明

请向我解释为什么我不断出现此错误:ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. 很明显,我只在开发人员模式下获得它,这在我的生产版本中不会发生,但是这很烦人,我根本不理解在我的开发人员环境中出现错误不会显示的好处可能是因为我缺乏了解. 通常,此修复很容易 ..

在Angular中手动触发变更检测

我正在编写一个具有属性Mode(): string的Angular组件. 我希望能够以编程方式设置此属性,而不响应任何事件. 问题在于,在没有浏览器事件的情况下,模板绑定{{Mode}}不会更新. 是否可以手动触发此更改检测? 解决方案 尝试以下方法之一: ApplicationRef.tick() -与AngularJS的$rootScope.$digest()类 ..
发布时间:2020-08-09 21:40:43 其他开发

Angular2使用值对等或引用对等来检测更改?

我正在使用Angular2-RC.1,并且在设置具有大数据的组件时看到了较差的性能. 我有一个表格组件(包装Handsontable),并公开了一个可绑定的Input属性,称为"data". 此属性通常绑定到一个大型数组(大约十万行). 设置大型数据集时,更改检测导致对主机组件(而非输入属性的所有者)中整个数组的值等效性进行测试. @Component({ selector: ..

如何在Angular 2中重新触发所有组件树上的所有纯管道

我有一个纯管道 TranslatePipe ,该管道使用具有 locale $的 LocaleService 来翻译短语:可观察的 当前语言环境。我还为所有组件(包括 AppComponent )启用了 ChangeDetectionStrategy.OnPush 。现在,当有人更改语言时如何重新加载整个应用程序? (在 locale $ 中观察到新值)。 当前,我正在使用 ..
发布时间:2020-06-05 19:31:58 其他开发

订阅Observable不会触发更改检测

我正在使用"angular2-virtual-scroll"来实现按需加载.以前由可观察对象使用父组件触发的异步管道驱动的项目.现在,我正试图从孩子那里打电话给我.调用成功,并且我获取了数据,我需要使用Subscribe事件来应用其他逻辑.问题是,当我在订阅函数中更新阵列时,检测到更改似乎无法正常工作.我读过其他类似的文章,但是我没有运气找到解决方案. 这是使用服务调用的主要组件.初始请求是 ..

Angular2 ChangeDetection还是可观察的?

我遇到了无法在登录时刷新的组件的问题. 该组件是navbar.component,其中包含指向我的页面/组件的链接.在其上,有一个"login"链接,呈现了login.component,可以在其上提供用户名和密码,然后单击“登录"按钮. login.component使用user.service,后者使用login.component提供的用户名和密码来调用后端,存储接收到的令牌并重定向到 ..
发布时间:2020-05-19 18:44:46 其他开发

Angular2 - 表达式在检查后发生了变化 - 使用resize事件绑定到div宽度

我已经对这个错误进行了一些阅读和调查,但不确定我的情况的正确答案是什么。我知道在开发模式下,更改检测运行两次,但我不愿意使用 enableProdMode()来掩盖问题。 这是一个简单的例子,表格中的单元格数量应该随着div的宽度扩展而增加。 (请注意,div的宽度不仅仅是屏幕宽度的函数,因此无法轻松应用@Media) 我的HTML如下所示(widget.template .html) ..

从Google API加载auth2时,更改检测功能无法运行

我试图从Angular 2服务中加载脚本 https://apis.google.com/js/api.js?onload=initGapi 为了调用Google API,但每当脚本完成加载和初始化时尝试返回一个值时, async 管道都不想呈现该值 我使用 EventEmitter ,当 gapi时触发。 load()和 gapi.client.init 已完成,并且observable将 ..

如何防止Firebase在Angular 2中重复触发更改检测?

Firebase使用了很多内部的异步调用,因为Angular / Zone的猴子补丁websocket和 setInterval 等等,所以触发了变化检测。即使我没有和我交互应用程序,我发现一直在变化检测级联,这有助于放慢速度,特别是在移动。特别是在移动。 这种默认行为可能是有用的,但我的方式我现在正在使用Firebase,当我需要更新视图的时候,我有非常严格的控制权,所以使用Firebas ..