标签: zone.js

angular http 请求同时发送两次

我用的是angluar4 http,比如登录请求服务器,当我点击按钮提交表单时,谷歌浏览器的网络捕获了两个请求,其中一个是zone.js: 2744(返回数据错误)。

为什么有两次?

我的代码参考在这里?https://angular.cn/tutorial/toh-pt6

1 全部 2 第一的 3 第二

http zone.js angular

4
推荐指数
1
解决办法
1694
查看次数

将 observable 运行到 zone.js 中

我有一个 GPS 插件,可提供角度区域之外的位置。因此,angular 不会检测到这些变化,并且视图会保持相同的值。

当然,我可以从控制器订阅这个 observable 并做类似的事情。

$mySourceOutOfZone.subscribe((value)=>{
            this.zone.run(() => {
                this.value = value;
            });
})
Run Code Online (Sandbox Code Playgroud)

视图将简单地使用如下值:

<span>{{value}}</span>
Run Code Online (Sandbox Code Playgroud)

但我想避免必须订阅控制器并使用命令式风格的方式。

我怎么能让这个 observable 在一个角度区域内运行?

rxjs zone.js angular

4
推荐指数
2
解决办法
1917
查看次数

SharePoint Online /Angular - 错误:未捕获的错误:区域已加载

我已经在 Angular 中创建了项目并使用内容编辑器添加到 SharePoint 页面中。

直到昨天它都可以正常工作。但它在加载页面时抛出以下错误。

zone-evergreen.js:42 Uncaught Error: Zone already loaded.
    at zone-evergreen.js:42
    at Object.pDpN (zone-evergreen.js:635)
    at __webpack_require__ (bootstrap:79)
    at Module.hN/g (polyfills.ts:1)
    at __webpack_require__ (bootstrap:79)
    at Object.1 (polyfills.js?v=1.0:10)
    at __webpack_require__ (bootstrap:79)
    at checkDeferredModules (bootstrap:45)
    at Array.webpackJsonpCallback [as push] (bootstrap:32)
    at polyfills.js?v=1.0:1

main.ts:12 TypeError: Zone.assertZonePatched is not a function
    at new NgZone (core.js:28352)
    at getNgZone (core.js:29222)
    at PlatformRef.bootstrapModuleFactory (core.js:29104)
    at core.js:29162
Run Code Online (Sandbox Code Playgroud)

请查看以下屏幕截图以了解更多详细信息,在此处输入图片说明

sharepoint zone.js angular

4
推荐指数
1
解决办法
342
查看次数

Angular 4.x + Cordova:FileReader无声地失败(白屏死机)

我有一个Angular 4.3 + Cordova应用程序,以前工作得很好.但现在,我在应用启动时出现了一个空白屏幕,没有任何事情发生.

经过一段时间的挖掘,我意识到它的来源:

我的主页受到保护的保护,该CanActivate保护将检查一些文件系统持久化的首选项,并将用户重定向到另一个页面(如果这是第一次运行或缺少必需的首选项),以填写所需的属性.

所以应用程序的推出取决于我的CanActivate后卫,这取决于我PreferenceService自己取决于FileSystemService我自己实现的.问题是当我尝试读取存储用户首选项的文件时,没有触发单个回调,没有任何反应,甚至没有错误.

这是我的一部分FileSystemService失败没有任何错误:

read(file: FileEntry, mode: "text" | "arrayBuffer" | "binaryString" | "dataURL" = "text"): Observable<ProgressEvent> {
    return this.cdv.ready.flatMap(() => {
        return Observable.create(observer => {
            file.file(file => {
                let reader = new FileReader();
                reader.onerror = (evt: ErrorEvent) => {
                    this.zone.run(() => observer.error(evt)); //never triggered
                };
                reader.onload = (evt: ProgressEvent) => {
                    this.zone.run(() => observer.next(evt)); //never trigerred
                };
                switch (mode) {
                    case "text":
                        reader.readAsText(file); …
Run Code Online (Sandbox Code Playgroud)

filereader cordova zone.js angular

3
推荐指数
1
解决办法
1166
查看次数

在测试中使用 fakeAsync 会导致 Angular 4 和 Zone.js 出错

我使用的角度4.3.1zone.js 0.8.14与我跑我的测试,与karmawebpack和跨在我的测试中这个奇怪的错误来了,每当我使用fakeAsync并勾选与时间相关的测试。

测试用例:

it('should call the function which is given as parameter', fakeAsync(() => {
  autoRefreshService.start();
  expect(spyFn).not.toHaveBeenCalled();
  tick(1);
  expect(spyFn).toHaveBeenCalled();
}));
Run Code Online (Sandbox Code Playgroud)

测试调用文件:

require('core-js/es6');
require('core-js/es7/reflect');
require('zone.js/dist/zone');
require('zone.js/dist/long-stack-trace-zone');
require('zone.js/dist/proxy');
require('zone.js/dist/sync-test');
require('zone.js/dist/jasmine-patch');
require('zone.js/dist/async-test');
require('zone.js/dist/fake-async-test');
import { TestBed } from '@angular/core/testing';
import {
    BrowserDynamicTestingModule,
    platformBrowserDynamicTesting,
} from '@angular/platform-browser-dynamic/testing';

TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting());
const context = (require as any).context('./', true, /\.spec\.ts$/);
context.keys().map(context);
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

Chrome 59.0.3071 (Mac OS X 10.12.5) CallbackRepeaterService start should not start if no callback set …
Run Code Online (Sandbox Code Playgroud)

jasmine webpack zone.js angular

2
推荐指数
1
解决办法
1909
查看次数

Angular 的 zone.js 是什么,React 的虚拟 DOM 是什么?

Pascal Precht 写了一篇关于 Angular 变化检测的精彩文章。虽然我知道 zone.js 和虚拟 DOM 是完全不同的概念,但 Angular 的 zone.js 相当于 React 的虚拟 DOM 吗?如果是,主要区别是什么,如果否,请简要说明原因。

reactjs virtual-dom zone.js angular

1
推荐指数
1
解决办法
2045
查看次数