我正在尝试将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) 从Angular 7.2更新到8.0时,https://update.angular.io/上的指南说“确保您使用的是Node 12或更高版本”。为什么Angular 8需要Node 12(当前)?如果继续使用节点10(LTS),会发生什么情况?
更新:我创建了一个新项目,进行了每个角度更新,现在在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
在我的角度应用程序中,我将 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) 我在数据库中有 UTC 时间。
我想将这个时间转换为 dd.mm.yy hms 格式的本地时间
怎么做?
我的日期是 UTC:
2019-08-08 08:57:59
Run Code Online (Sandbox Code Playgroud)
有需要 当地时间 +4:00
试图了解构建 Angular8 库的输出(因为它构建了 5 个类似的东西,每个库的构建时间都增加了) - 当我构建一个 Angular 库(bundle、esm5、esm2015、fesm5 和fesm2015)?我可以教 Angular8 只为我的库提供 ESM5 或 UMD 模块,而不是花费额外的时间来生成这些不需要的“现代浏览器”内容吗?
我读了一些关于差异加载的内容,但从构建 Angular8 库的角度来看似乎没有意义。
任何指针表示赞赏。
我正在尝试用我的 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
我在从 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;
有没有人可以帮我摆脱它。
我有单点登录,但为了测试,我想从 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 或其他博客上找到的任何内容。有人可以指出我在这里缺少什么吗?
每当我在用户控制器上使用授权属性时,我都会收到 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
angular8 ×10
angular ×7
ecmascript-6 ×2
node.js ×2
amazon-s3 ×1
asp.net-core ×1
c# ×1
d3.js ×1
es6-modules ×1
firebase ×1
javascript ×1
node-modules ×1
typescript ×1