问题标签 [zonejs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
angular - 从 beta 15 升级到 beta 16 时,什么可能会导致巨大的延迟?
我在 beta 15 中编写应用程序,现在是时候升级到最新版本了。我已经意识到,当我从beta 15
tobeta 16
更新(也将 ZoneJS 从0.6.10
to更新0.6.12
)时,我的应用程序正在冻结整个浏览器。我进行了调查,发现这是由我在前面展示的大型对象引起的 - 一个包含 1500 个对象的数组(以简单表格的形式呈现)。但是,我从来没有遇到过这个问题<beta15
。有没有什么改变了,也许我没有意识到?
我发现的唯一一件事是:
更改检测顺序已更改:
- 脏检查组件输入
- 脏检查内容儿童
- 更新渲染节点
但是,我正在使用的表格只显示对象,所以这不应该对此产生影响..
angular - 我如何为 Zone.js “猴子补丁”一个 Observable?
我正在创建一个 Angular 2 组件,当使用某种 Observable 模式时,Angular 的更改检测对我不起作用。它看起来像这样:
然后在我的模板中:
由于readyToLogin$
Observable 基于一组同步操作,这些操作是为了响应http.get()
(Angular“猴子补丁”以确保它知道何时需要检测更改)而发生的,因此“准备登录”消息会true
在适当的时间切换到.
然而,由于processSignInResponse()
产生 a Promise<>
,任何订阅结果的事情都flatMap
与 http 请求的完成事件异步发生。因此,它需要手动干预来通知我的组件区域它需要检查更改。
如何signInResponse$
以一种NgZone
知道在解决任何订阅后检测更改的方式包装可观察对象?
更新
布兰登的回答一直有效,直到我更新到 RC5,此时事情再次停止工作。结果是我使用的是 3rd-party 库 borked Zone.js。一旦解决了这个问题,就根本不需要使用解决方法——内置的猴子补丁就可以了!
angularjs - Angular 2:在 RC 1 版本中找不到@angular 模块
我开始用 RC1 版本编写 angular2 应用程序。如angular.io 文档中所述,我在根目录中创建了单独的system.config.js文件。
我已经给出了在 node_modules 下查找 @angular 模块的参考,'@angular': 'node_modules/@angular'
但它显示 404你可以在这里看到。我已经根据文档中给出的指南引导它。在我的app/main.ts文件中
这是index.html的样子
我已经安装了@angular/core和@angular/platform-browser
任何帮助将不胜感激!
angular - 如何使 Facebook Javascript SDK 与 Angular 2 和 Zone 一起使用?
我正在尝试使用 FB Javascript SDK 为我的 angular2 应用程序构建身份验证服务,但是,方法FB.login
( window.FB.login
) 是“超出区域”的事实正在破坏我的 webapp 上的“自动渲染事物”。发生这种情况是因为FB.login
调用结果所做的更改一旦“不受监控”就不会更新视图。
现在,为了使它工作,我手动定义区域:
但是,在我看来,这不是一个“优雅的解决方案”。
有没有其他方法可以使它工作[使用 FB Javascript SDK]?
data-binding - Angular2 区域变化检测
我想知道是否所有异步事件和回调都可以通过将所有组件逻辑(包括组件内的非组件指令的逻辑)包装在一个区域中来追溯到特定的源组件,然后只需要检查源组件的更改假设所有更改都遵循单向流,则任何具有来自源组件的更改输入的子组件。
这种理解合理吗?
这种变化检测策略在 Angular2 中可用吗?
为什么 Angular2 在任何异步 (XHR) 事件之后检测所有组件的变化?
javascript - 使用 Zone.js 获取无区域窗口方法
可以通过加载的 Zone.js 以某种方式访问无区域window
方法(setTimeout
等)吗?Zone.js 是否公开了原始未打补丁的方法?
可能的用例示例是 Angular 2 应用程序,它在 Angular 2 材质数据绑定方面存在一些问题,需要调用 un-zonedsetTimeout
作为临时但即时的解决方法 - 在问题得到正确修复之前。
angular - Angular CLI 共享文件夹子文件夹
angular 2 中的“共享”文件夹之一充满了服务/模型,因此我想将文件移动到共享文件夹的子文件夹中
我想从这个文件夹结构中走出来:
至
当我这样做时,应用程序会转译并且 CLI 创建一个构建,但在浏览器中会出现错误:
上面的文件位置丢失/子文件夹/
我已正确完成所有导入(我已将 test.service.ts 文件移入和移出子文件夹,一旦它移出子文件夹并返回共享文件夹,它就可以正常工作......一切都加载了/没有错误)
我还更新了“system-config.ts”文件以包含“app/shared/sub-folder”桶,并在“子文件夹”中添加了带有适当导出的 index.ts
我如何(或我可以)使用共享文件夹中的子文件夹?
javascript - ReferenceError: cliSystemConfigPackages 未定义
我开始编写 Angular 2,我收到错误消息,我看到了这个答案: 错误:ReferenceError:cliSystemConfigPackages 未定义
并没有解决问题。这是错误:
这是我的 package.json:
有些人可以帮助我解决这个错误?
express - 使用 ExpressJS 和 Angular2 时如何解决 @angular 依赖关系?
我正在尝试使用 ExpressJS 和 Angular2 编写一个 Web 应用程序。Zone.js 似乎正在尝试(未成功)加载一些@angular 库,但我不确定如何修复它。
到目前为止,我的过程如下所示:
- 复制到我的build/node_modules文件夹中:
- 核心-js/client/shim.min.js
- zone.js/dist/zone.js
- 反射元数据/Reflect.js
- systemjs/dist/system.src.js
- 将/scripts URL映射到 ExpressJS 中的node_modules文件夹
在我的索引页面上,在脚本标签中获取上述库并加载 SystemJS:
/li>最后,我的bootstrap.ts文件:
/li>
但是,当我运行它时,我收到以下错误:
我尝试将@angular库复制到我的build/node_modules 中,并将index.js文件从列出的每个文件夹中添加到<script>
我的主页上的标签中,但这没有任何区别。
任何人都可以提出解决这个问题的方法吗?
javascript - Angular2 - queryParam 更改已执行但未反映在 Safari + IE11 中
我正在监听组件中的 queryParam 更改,以便更新和保存活动行的状态。单击行突出显示一个,使用浏览器的后退按钮标记上一个。行为活动。到目前为止,一切都很好。但是还有 IE11 和 Safari。
当我在 IE 11 或 Safari 中使用浏览器后退按钮时,我的组件中的代码会被执行,但不会反映在 DOM 中。当我在 NgZone.run(callback) 回调函数中运行更改时,它会得到反映。
这是重现该行为的 Plunk :