问题标签 [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.

0 投票
0 回答
22 浏览

angular - 从 beta 15 升级到 beta 16 时,什么可能会导致巨大的延迟?

我在 beta 15 中编写应用程序,现在是时候升级到最新版本了。我已经意识到,当我从beta 15tobeta 16更新(也将 ZoneJS 从0.6.10to更新0.6.12)时,我的应用程序正在冻结整个浏览器。我进行了调查,发现这是由我在前面展示的大型对象引起的 - 一个包含 1500 个对象的数组(以简单表格的形式呈现)。但是,我从来没有遇到过这个问题<beta15。有没有什么改变了,也许我没有意识到?

我发现的唯一一件事是:

更改检测顺序已更改:

  1. 脏检查组件输入
  2. 脏检查内容儿童
  3. 更新渲染节点

但是,我正在使用的表格只显示对象,所以这不应该对此产生影响..

0 投票
3 回答
2629 浏览

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。一旦解决了这个问题,就根本不需要使用解决方法——内置的猴子补丁就可以了!

0 投票
0 回答
322 浏览

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-b​​rowser

任何帮助将不胜感激!

0 投票
0 回答
400 浏览

angular - 如何使 Facebook Javascript SDK 与 Angular 2 和 Zone 一起使用?

我正在尝试使用 FB Javascript SDK 为我的 angular2 应用程序构建身份验证服务,但是,方法FB.login( window.FB.login) 是“超出区域”的事实正在破坏我的 webapp 上的“自动渲染事物”。发生这种情况是因为FB.login调用结果所做的更改一旦“不受监控”就不会更新视图。

现在,为了使它工作,我手动定义区域:

但是,在我看来,这不是一个“优雅的解决方案”。

有没有其他方法可以使它工作[使用 FB Javascript SDK]?

0 投票
2 回答
375 浏览

data-binding - Angular2 区域变化检测

我想知道是否所有异步事件和回调都可以通过将所有组件逻辑(包括组件内的非组件指令的逻辑)包装在一个区域中来追溯到特定的源组件,然后只需要检查源组件的更改假设所有更改都遵循单向流,则任何具有来自源组件的更改输入的子组件。

这种理解合理吗?

这种变化检测策略在 Angular2 中可用吗?

为什么 Angular2 在任何异步 (XHR) 事件之后检测所有组件的变化?

0 投票
5 回答
1118 浏览

javascript - 使用 Zone.js 获取无区域窗口方法

可以通过加载的 Zone.js 以某种方式访问​​无区域window方法(setTimeout等)吗?Zone.js 是否公开了原始未打补丁的方法?

可能的用例示例是 Angular 2 应用程序,它在 Angular 2 材质数据绑定方面存在一些问题,需要调用 un-zonedsetTimeout作为临时但即时的解决方法 - 在问题得到正确修复之前。

0 投票
1 回答
1276 浏览

angular - Angular CLI 共享文件夹子文件夹

angular 2 中的“共享”文件夹之一充满了服务/模型,因此我想将文件移动到共享文件夹的子文件夹中

我想从这个文件夹结构中走出来:

当我这样做时,应用程序会转译并且 CLI 创建一个构建,但在浏览器中会出现错误:

上面的文件位置丢失/子文件夹/

我已正确完成所有导入(我已将 test.service.ts 文件移入和移出子文件夹,一旦它移出子文件夹并返回共享文件夹,它就可以正常工作......一切都加载了/没有错误)

我还更新了“system-config.ts”文件以包含“app/shared/sub-folder”桶,并在“子文件夹”中添加了带有适当导出的 index.ts

我如何(或我可以)使用共享文件夹中的子文件夹?

0 投票
1 回答
187 浏览

javascript - ReferenceError: cliSystemConfigPackages 未定义

我开始编写 Angular 2,我收到错误消息,我看到了这个答案: 错误:ReferenceError:cliSystemConfigPackages 未定义

并没有解决问题。这是错误:

这是我的 package.json:

有些人可以帮助我解决这个错误?

0 投票
1 回答
140 浏览

express - 使用 ExpressJS 和 Angular2 时如何解决 @angular 依赖关系?

我正在尝试使用 ExpressJS 和 Angular2 编写一个 Web 应用程序。Zone.js 似乎正在尝试(未成功)加载一些@angular 库,但我不确定如何修复它。

到目前为止,我的过程如下所示:

  1. 复制到我的build/node_modules文件夹中:
    • 核心-js/client/shim.min.js
    • zone.js/dist/zone.js
    • 反射元数据/Reflect.js
    • systemjs/dist/system.src.js
  2. 将/scripts URL映射到 ExpressJS 中的node_modules文件夹
  3. 在我的索引页面上,在脚本标签中获取上述库并加载 SystemJS:

    /li>
  4. 最后,我的bootstrap.ts文件:

    /li>

但是,当我运行它时,我收到以下错误:

我尝试将@angular库复制到我的build/node_modules 中,并将index.js文件从列出的每个文件夹中添加到<script>我的主页上的标签中,但这没有任何区别。


任何人都可以提出解决这个问题的方法吗?

0 投票
0 回答
126 浏览

javascript - Angular2 - queryParam 更改已执行但未反映在 Safari + IE11 中

我正在监听组件中的 queryParam 更改,以便更新和保存活动行的状态。单击行突出显示一个,使用浏览器的后退按钮标记上一个。行为活动。到目前为止,一切都很好。但是还有 IE11 和 Safari。

当我在 IE 11 或 Safari 中使用浏览器后退按钮时,我的组件中的代码会被执行,但不会反映在 DOM 中。当我在 NgZone.run(callback) 回调函数中运行更改时,它会得到反映。

这是重现该行为的 Plunk :