angular2-changedetection相关内容
我有两个组成部分:ParentComponent > ChildComponent和一个服务,例如TitleService. ParentComponent看起来像这样: export class ParentComponent implements OnInit, OnDestroy { title: string; private titleSubscription:
..
我正在尝试按照以下步骤构建共享服务 import {Injectable,EventEmitter} from 'angular2/core'; import {Subject} from 'rxjs/Subject'; import {BehaviorSubject} from 'rxjs/subject/BehaviorSubject'; @Injectable() export
..
我希望能够观察和更新angular2之外的变量.因此,假设我在一个外部javascript文件中拥有此文件: var test = 1; 如何将此变量绑定到组件中的属性? @Component({ ... }) export class MyComponent { watchy = window.test; } 显然,根据此答案,这应该可以解决. 但事实并非如
..
我有一个数据表组件( angular2-data-table )项目,为了优化渲染速度,将项目从Angular的传统更改检测更改为OnPush. 一旦实施了新的变更检测策略,就会发生一个错误,该错误引用了当数据对象发生突变(例如对象的属性更新)时表未更新.参考:为解决此问题,我们添加了一个名为trackByProp的自定义trackBy属性检查器.参考:提交.不幸的是,此解决方案未能解决问题
..
我有一个父组件( CategoryComponent ),一个子组件( videoListComponent )和一个ApiService. 我在大多数情况下都能正常工作,即每个组件都可以访问json api并通过可观察对象获取其相关数据. 当前视频列表组件仅获取所有视频,我想将其过滤为特定类别中的视频,我是通过@Input()将categoryId传递给子对象来实现的. Cat
..
ChangeDetectorRef.markForCheck()和ChangeDetectorRef.detectChanges()有什么区别? 我只找到了关于SO的信息有关NgZone.run()之间的区别,但没有找到这两个功能之间的区别./p> 对于仅参考文档的答案,请举例说明一些实际情况,以供选择. 解决方案 来自文档: detectChanges():无效 检查更改
..
问题 在显示模板中的相应元素之后,最优雅的获取@ViewChild的方法是什么? 下面是一个示例.还可以柱塞. 模板:
组件: export class AppComponent { display =
..
请向我解释为什么我不断出现此错误:ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. 很明显,我只在开发人员模式下获得它,这在我的生产版本中不会发生,但是这很烦人,我根本不理解在我的开发人员环境中出现错误不会显示的好处可能是因为我缺乏了解. 通常,此修复很容易
..
我正在编写一个具有属性Mode(): string的Angular组件. 我希望能够以编程方式设置此属性,而不响应任何事件. 问题在于,在没有浏览器事件的情况下,模板绑定{{Mode}}不会更新. 是否可以手动触发此更改检测? 解决方案 尝试以下方法之一: ApplicationRef.tick() -与AngularJS的$rootScope.$digest()类
..
我正在使用Angular2-RC.1,并且在设置具有大数据的组件时看到了较差的性能. 我有一个表格组件(包装Handsontable),并公开了一个可绑定的Input属性,称为"data". 此属性通常绑定到一个大型数组(大约十万行). 设置大型数据集时,更改检测导致对主机组件(而非输入属性的所有者)中整个数组的值等效性进行测试. @Component({ selector:
..
我有一个纯管道 TranslatePipe ,该管道使用具有 locale $的 LocaleService 来翻译短语:可观察的 当前语言环境。我还为所有组件(包括 AppComponent )启用了 ChangeDetectionStrategy.OnPush 。现在,当有人更改语言时如何重新加载整个应用程序? (在 locale $ 中观察到新值)。 当前,我正在使用
..
我正在使用"angular2-virtual-scroll"来实现按需加载.以前由可观察对象使用父组件触发的异步管道驱动的项目.现在,我正试图从孩子那里打电话给我.调用成功,并且我获取了数据,我需要使用Subscribe事件来应用其他逻辑.问题是,当我在订阅函数中更新阵列时,检测到更改似乎无法正常工作.我读过其他类似的文章,但是我没有运气找到解决方案. 这是使用服务调用的主要组件.初始请求是
..
我遇到了无法在登录时刷新的组件的问题. 该组件是navbar.component,其中包含指向我的页面/组件的链接.在其上,有一个"login"链接,呈现了login.component,可以在其上提供用户名和密码,然后单击“登录"按钮. login.component使用user.service,后者使用login.component提供的用户名和密码来调用后端,存储接收到的令牌并重定向到
..
考虑这个 plunker 孙子组件 (); back2click(){ this.back2.emit('hi'); } 子组件
..
考虑这个 plunker 从'angular2 / core'导入{Component,OnInit,Input,OnChanges,DoCheck,ChangeDetectionStrategy,EventEmitter} @Component({ selector :'child11', 模板:` Child11中
..
说我在我的service.ts中有一个函数noificationHandler(),它超出了angular的上下文。 noificationHandler()由第三方调用, noificationHandler()基本上消耗一个数组并发出数组到订阅了他的服务的组件。 service.ts public mySubject:Subject =新主题(); public
..
我正在尝试创建一个简单的示例项目来测试角度2更改检测机制:我在主索引页面上的脚本标记中创建一个纯javascript对象。它包含以下内容: var Tryout = {}; Tryout.text =“原文在这里”; Tryout.printme = function(){ console.log(Tryout.text); } Tryout.changeme = func
..
我已经对这个错误进行了一些阅读和调查,但不确定我的情况的正确答案是什么。我知道在开发模式下,更改检测运行两次,但我不愿意使用 enableProdMode()来掩盖问题。 这是一个简单的例子,表格中的单元格数量应该随着div的宽度扩展而增加。 (请注意,div的宽度不仅仅是屏幕宽度的函数,因此无法轻松应用@Media) 我的HTML如下所示(widget.template .html)
..
我试图从Angular 2服务中加载脚本 https://apis.google.com/js/api.js?onload=initGapi 为了调用Google API,但每当脚本完成加载和初始化时尝试返回一个值时, async 管道都不想呈现该值 我使用 EventEmitter ,当 gapi时触发。 load()和 gapi.client.init 已完成,并且observable将
..
Firebase使用了很多内部的异步调用,因为Angular / Zone的猴子补丁websocket和 setInterval 等等,所以触发了变化检测。即使我没有和我交互应用程序,我发现一直在变化检测级联,这有助于放慢速度,特别是在移动。特别是在移动。 这种默认行为可能是有用的,但我的方式我现在正在使用Firebase,当我需要更新视图的时候,我有非常严格的控制权,所以使用Firebas
..