angular2-changedetection相关内容

Angular 2 变化检测因电子而崩溃

我有一个使用 Angular 2 的 Electron 应用程序.该应用程序工作正常,直到使用 ipcRenderer 从本地 JSON 文件加载数据.然后,作用于服务中数据的按钮不再触发更改检测过程来更新视图.我创建了一个简化的示例应用程序来演示这里的问题:https://github.com/marshmellow1328/electron-angular-change-detection ..
发布时间:2022-01-10 22:04:18 其他开发

Angular2 - 表达式在检查后发生了变化 - 绑定到具有调整大小事件的 div 宽度

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

如何检测 @Input() 值何时在 Angular 中发生变化?

我有一个父组件 (CategoryComponent)、一个子组件 (videoListComponent) 和一个 ApiService. 我的大部分工作都很好,即每个组件都可以访问 json api 并通过 observables 获取其相关数据. 目前视频列表组件只获取所有视频,我想将其过滤为特定类别的视频,我通过通过 @Input() 将 categoryId 传递给孩子来实现 ..
发布时间:2021-12-02 20:30:14 其他开发

如何在 Angular 2 中强制重新渲染组件?

如何在 Angular 2 中强制重新渲染组件?为了使用 Redux 进行调试,我想强制一个组件重新渲染它的视图,这可能吗? 解决方案 渲染发生在更改检测之后.要强制更改检测,以便将更改的组件属性值传播到 DOM(然后浏览器将在视图中呈现这些更改),这里有一些选项: ApplicationRef.tick() - 类似于 Angular 1 的 $rootScope.$digest( ..
发布时间:2021-12-02 20:10:03 其他开发

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

ChangeDetectorRef.markForCheck() 和 ChangeDetectorRef.detectChanges() 有什么区别? 我只找到关于 SO 的信息,以了解 NgZone.run() 之间的区别,但不在这两个函数之间. 对于仅参考文档的答案,请举例说明一些实际情况以选择其中之一. 解决方案 detectChanges() : 无效 检查变 ..
发布时间:2021-12-02 20:07:40 其他开发

在模板中使用 Angular Reactive Forms .get() 方法会导致不必要的方法调用,如组件方法吗?

我知道如果我在模板中使用方法调用,它会一遍又一遍地执行(不理想).我已经通过使用纯管道和记忆方法的组合解决了这个问题.但我也使用反应式表单,并在我的模板中使用 myFormGroup.get('myFormControl').value 来获取值.这是否也会像我的组件中的方法一样重复执行,或者 Angular 是否有适当的策略来防止这种情况发生?一个用法示例是使用 *ngIf 并让条件基于表单的值 ..

ExpressionChangedAfterItHasBeenCheckedError 解释

请向我解释为什么我总是收到此错误:ExpressionChangedAfterItHasBeenCheckedError:表达式在检查后已更改. 显然,我只在开发模式下得到它,它不会发生在我的生产版本中,但这很烦人,而且我根本不明白在我的开发环境中出现不会出现的错误的好处在 prod 上——可能是因为我缺乏理解. 通常,修复很容易,我只是将导致错误的代码包装在 setTimeout 中 ..

在 Angular 中手动触发变更检测

我正在编写一个具有属性 Mode(): string 的 Angular 组件. 我希望能够以编程方式设置此属性,而不是响应任何事件. 问题在于,在没有浏览器事件的情况下,模板绑定 {{Mode}} 不会更新. 有没有办法手动触发这种变化检测? 解决方案 尝试以下方法之一: ApplicationRef.tick() - 类似于 AngularJS 的 $rootS ..
发布时间:2021-11-27 23:57:29 其他开发

在模板中使用 Angular Reactive Forms .get() 方法会导致像组件方法一样不必要的方法调用吗?

我知道如果我在模板中使用方法调用,它会一遍又一遍地执行(不理想).我已经通过使用纯管道和记忆方法的组合解决了这个问题.但我也在使用反应式表单,并在我的模板中使用 myFormGroup.get('myFormControl').value 来获取值.这是否也会像我的组件中的方法一样重复执行,或者 Angular 是否有适当的策略来防止这种情况发生?一个用法示例是使用 *ngIf 并根据表单的值设置 ..

Angular2 模板表达式在更改检测时为每个组件调用两次

非常标准的情况. 有一个父组件.在带有 *ngFor 的模板中生成了 20 个子组件 .使用 [ngStyle] 指令和调用函数 setStyles() 的模板表达式设置的子组件样式. 问题(也可能不是)是,当在一个特定子元素上发出任何事件时,表达式 setStyles() 会为每个子组件执行两次. 因此,如果我们在示例中单击一个特定项目,并且我们有 20 个 组件 - setS ..

Angular 2 Chrome DOM 渲染问题

我们的团队(不仅是我的电脑)在 Angular 2 中存在一个奇怪的渲染问题,这只发生在 Chrome 中. 即在应用导航或应用中刷新时,DOM中的许多项目是不可见的.例如.包含文本的段落和标题,但不会为最终用户呈现文本,但可以在检查器 DOM 中看到文本. 如果您在检查器中编辑随机 CSS 属性,DOM 将重新获得可见性.这个 CSS 甚至不必适用于手头的不可见 DOM 项,唉.不可 ..

Angular 2 组件监听服务变化

我有一个关于变更检测的简单问题. 我有一个组件和一个(全局)服务,里面有一个布尔值.如果该布尔值发生变化,如何让组件侦听该布尔值并执行函数? 谢谢! 解决方案 根据布尔值如何更改,您可以将其公开为服务上的 Observable,然后订阅该流在您的组件中.您的服务将类似于: @Injectable()导出类 MyBooleanService {myBool$: Observab ..
发布时间:2021-11-08 21:59:20 其他开发

Angular 2 表单 + OnPush

我正在编写一个 angular 2 应用程序,出于性能原因,我尝试在任何地方使用 ChangeDetectionStrategy.OnPush.我有一个需要 OnPush 才能顺利工作的复杂组件,其中包含另一个显示表单的组件(使用 FormBuilder 创建).我现在注意到当我点击一个滑块时,它的内部值会更新(即 form.value),但滑块组件并没有可视化这个新值,即它卡在旧位置. 我 ..
发布时间:2021-11-08 21:14:17 其他开发

如何检测 Angular 2 反应式/动态形式的一个元素发生的变化?

我试图检测使用反应式表单构建的一个特定表单元素的变化. 我使用 *ngFor 和 *ngSwitch 指令来构建响应式表单,如 https://angular.io/docs/ts/latest/cookbook/dynamic-form.html#.我的表单当前包含输入类型 text 和 file.我使用更改事件来捕获文件上传任务,因此我需要检测 file 输入元素中的更改,而不是 tex ..
发布时间:2021-11-08 21:13:32 其他开发