标签: angular8

升级到Angular 8后d3.js运行时错误

我正在尝试将Angular 6应用程序升级到Angular8。我的代码可以编译,但是我立即收到运行时错误“ d3.js:8 Uncaught TypeError:无法读取未定义的属性'document' ”。

d3.js中失败的行是var d3_document = this.document;。这使我相信Angular 8在严格模式下运行d3.js。我拥有d3节点模块的最新版本(“ d3”:“ 3.5.17”),它显然不支持严格模式;我的理解是“ this”应该引用窗口​​对象,但在严格模式下不起作用。

我知道Angular 8现在使用dart-sass而不是node-sass,这应该更严格。我确实尝试安装node-sass来代替dart-sass来使用它(如升级文档所推荐),但是我很确定这与sass无关。

我会注意到我的一些其他软件包需要更新,因为它们依赖于Angular 6的软件包,但是我看不到这将如何影响他的d3错误。

我也尝试"noImplicitUseStrict": false,在tsconfig.json文件中明确说,但收到相同的错误。我也"noImplicitUseStrict": true,没有运气尝试过。

我已引用此堆栈溢出帖子,该帖子解决了相同的错误:D3.js:未捕获的TypeError:无法读取undefined的属性“ document”,以及所引用的解决方案:https : //stackoverflow.com/questions/33821312/how-to-删除全局使用限制,按babel添加;但是我很难将这些应用到我的情况上,因为我正在使用Angular项目,并且不确定babel是否适用或如何修改babel选项。

完全错误:

d3.js:8 Uncaught TypeError: Cannot read property 'document' of undefined
    at d3.js:8
    at Object../node_modules/d3/d3.js (d3.js:9554)
    at __webpack_require__ (bootstrap:83)
    at Module../dist/core-services/fesm2015/core-services.js (core-services.js:1)
    at __webpack_require__ (bootstrap:83)
    at Module../src/app/app.component.ts (main-es2015.js:22262)
    at __webpack_require__ (bootstrap:83)
    at Module../src/app/app.module.ts (app.component.ts:21)
    at __webpack_require__ (bootstrap:83)
    at Module../src/main.ts (main.ts:1)
(anonymous) @   d3.js:8
./node_modules/d3/d3.js …
Run Code Online (Sandbox Code Playgroud)

javascript d3.js node-modules angular angular8

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

Angular 8为什么推荐节点12?

从Angular 7.2更新到8.0时,https://update.angular.io/上的指南说“确保您使用的是Node 12或更高版本”。为什么Angular 8需要Node 12(当前)?如果继续使用节点10(LTS),会发生什么情况?

node.js angular8

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

具有Firebase云功能的Angular(8)Universal-无法匹配任何路由

更新:我创建了一个新项目,进行了每个角度更新,现在在8.2.0上似乎可以正常工作。只需按照以下说明进行操作,但webpack中当前存在一个错误。因此,在构建“ npm run build:ssr”之后,在functions / dist中打开server.js并编辑第3和7行,如下所示:

if(typeof exports === 'object' && typeof module === 'object')
    module.exports = factory(require("./server/main"));
else if(typeof define === 'function' && define.amd)
    define(["require(\"./server/main\")"], factory);
else if(typeof exports === 'object')
    exports["app"] = factory(require("./server/main"));
else
    root["app"] = factory(root["require(\"./server/main\")"]);
Run Code Online (Sandbox Code Playgroud)

(之前:“ factory(require(” require(\“ ./ server / main \”)“));”)

非常感谢Michele Da Rin Fioretto在“ https://blog.daudr.me/painless-angular-ssr/#comment-4605393279 ” 上为我提供的帮助。如果您遇到相同的问题,请前往那儿并感谢他。


我有一个使用firebase的Angular(8)商店webapp。但是由于我没有使用Angular-Universal,所以无法在产品站点上设置标题/元标记。为了解决该问题,我尝试添加角度通用并将该应用程序部署到Firebase云功能,但是,一旦Firebase接管,便不再匹配任何路由。

我也跟着上angular.io的官方指南,然后切换到fireship.io的辉煌杰夫Delanay的教程链接教程,并在这个题目看了一些媒体的文章像这样的。我创建了(几个)新应用,并反复尝试。只要ssr-express服务器处理请求,一切都可以正常工作(新的angular 8延迟加载箭头功能除外)。先执行“ npm run build:ssr”再执行“ npm run serve:ssr”,但是一旦为Firebase云功能准备了代码并且“ firebase serve”接管了代码,“ localhost:5000”就可以工作,但是打开任何链接就像“ / about”示例一样,控制台输出直接指出没有路由可以匹配。自从我尝试了官方文档和几篇中型文章以来,这肯定是一个非常常见的问题,但是我在这里找不到有关此主题的任何问题。

由于我看不到如何在stackblitz或其他任何地方进行审查,因此,我将尝试(简要地)描述我的所作所为,并在需要的地方显示相应的代码。

tl; dr :(已过时) Firebase Server Github存储库

(基本上打开firebase服务器,单击按钮并按f5键) …

firebase google-cloud-functions angular-universal angular angular8

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

使用默认值重置表单

在我的角度应用程序中,我将 Id 的默认值添加为0。但是当用户重置表单时,它会被清除。

如何重置表单并保留默认值?

这是我的表格:

this.createForm = this.formBuilder.group({
    'Id': new FormControl({ value: 0, disabled: true }, [Validators.required])
});
Run Code Online (Sandbox Code Playgroud)

我尝试这样:

dismissEditPop() {
  this.createForm.reset();
  this.createForm.setValue({ //setting back not working!!
    Id: 0
  });
  this.modalBackdrop = false;
  this.editPopup = false;
  this.deletePopup = false;
  this.addRowData = false;
}
Run Code Online (Sandbox Code Playgroud)

angular angular-forms angular8

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

如何将日期时间 UTC 转换为本地时间 Angular?

我在数据库中有 UTC 时间。

我想将这个时间转换为 dd.mm.yy hms 格式的本地时间

怎么做?

我的日期是 UTC:

2019-08-08 08:57:59
Run Code Online (Sandbox Code Playgroud)

有需要 当地时间 +4:00

angular angular8

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

当我构建一个 Angular 库(bundle、esm5、esm2015、fesm5 和 fesm2015)时,我看到了什么

试图了解构建 Angular8 库的输出(因为它构建了 5 个类似的东西,每个库的构建时间都增加了) - 当我构建一个 Angular 库(bundle、esm5、esm2015、fesm5 和fesm2015)?我可以教 Angular8 只为我的库提供 ESM5 或 UMD 模块,而不是花费额外的时间来生成这些不需要的“现代浏览器”内容吗?

我读了一些关于差异加载的内容,但从构建 Angular8 库的角度来看似乎没有意义。

任何指针表示赞赏。

ecmascript-6 es6-modules angular8

8
推荐指数
0
解决办法
5489
查看次数

ngFor - 无法绑定到“testid”,因为它不是“input”的已知属性。如何将 id 与字符串连接起来?

我正在尝试用我的 ID 添加index值。但出现错误:

Can't bind to 'testid' since it isn't a known property of 'input'.
Run Code Online (Sandbox Code Playgroud)

这是我的模板:

<td *ngFor="let col of columns; let i = index"  [ngClass]="col.class" data-testid="form-create-td-{{i}}">
Run Code Online (Sandbox Code Playgroud)

我的代码有什么问题吗?有人帮助我吗?

angular angular-template-variable angular8 angular-testing-library

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

如何从 Angular 8 在 AWS S3 中上传文件

我在从 Angular 8 Project 上传文件到 S3 时遇到错误。我已按照以下教程进行操作并执行所需的操作

https://medium.com/ramsatt/angular-7-upload-file-to-amazon-s3-bucket-ba27022bad54

但我无法在服务文件中使用 S3 库。

错误截图

下面几行产生了我认为但仍然不确定哪里缺少东西的错误

从“aws-sdk/global”导入 * 作为 AWS;

从 'aws-sdk/clients/s3' 导入 * 作为 S3;

有没有人可以帮我摆脱它。

amazon-s3 angular angular8

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

Angular 7/8 - 如何在应用组件中获取 url 参数

我有单点登录,但为了测试,我想从 url 读取值localhost:4200/?id=test&name=testing&email=testing@test.com并将它们传递给应用程序组件中的 API。

将有一个标志,在此基础上我将从 url 读取而不是使用单点登录功能

if (url_enabled == true) {
    getParamsFromUrl()
 } else {
   singleSignOn()
 }
Run Code Online (Sandbox Code Playgroud)

我尝试了 ActivatedRoute,但它似乎不起作用。

我试过了,queryParams, params, url, queryParamsMap但这些似乎都不起作用。我得到的只是空值。

内部应用组件

app.component.ts

 getParamsFromUrl() {
    this._router.events.subscribe((e) => {
      if (e instanceof NavigationEnd) {
        console.log(e.url)
      }
    })
  }

 this.route.queryParams.subscribe(params => {
      console.log(params);
    })
Run Code Online (Sandbox Code Playgroud)

应用程序组件.html

<router-outlet></router-outlet>
Run Code Online (Sandbox Code Playgroud)

app-routing.module.ts

const routes: Routes = [
  {path:'*/:id', component: AppComponent},
];
Run Code Online (Sandbox Code Playgroud)

我已经尝试了我可以在 stackoverflow 或其他博客上找到的任何内容。有人可以指出我在这里缺少什么吗?

node.js typescript ecmascript-6 angular angular8

8
推荐指数
5
解决办法
2万
查看次数

使用授权属性时出现 Cors 策略错误

每当我在用户控制器上使用授权属性时,我都会收到 cors 策略错误。我使用 Angular 8 作为我的前端框架,使用 asp .net core 3.0.0 作为我的后端。如果我删除授权属性,它工作正常来自控制器。 控制台错误。下面是我的startup.cs文件。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Threading.Tasks;
using AutoMapper;
using DatingApp.API.Data;
using DatingApp.API.Helpers;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Diagnostics;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.HttpsPolicy;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;

namespace DatingApp.API {
    public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        public IConfiguration Configuration { get; }

        // This method gets called …
Run Code Online (Sandbox Code Playgroud)

c# authorize-attribute asp.net-core asp.net-core-3.0 angular8

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