Angular 4 Universal“窗口未定义”

2023-11-26

我的项目运行完美,但是当我实现通用时,我得到“窗口未定义”。

我的错误如下。

 node_modules/hammerjs/hammer.js:2643

 })(window, document, 'Hammer');

      ^
  ReferenceError: window is not defined
     at Object.<anonymous> (/var/www/html/resumeble_unv/node_modules/hammerjs  /hammer.js:2643:4) 

      at Module._compile (module.js:571:32)
      at Object.Module._extensions..js (module.js:580:10)
      at Module.load (module.js:488:32)
      at tryModuleLoad (module.js:447:12)
     at Function.Module._load (module.js:439:3)
     at Module.require (module.js:498:17)
     at require (internal/module.js:20:19)
     at node_modules/ngx-carousel/bundles /ngxcarousel.umd.js:2:174
    at Object.<anonymous> (node_modules/ngx-carousel/bundles/ngxcarousel.umd.js:5:2)

包.json

  { 
  "name": "resumable-ang",

  "version": "0.0.0",

  "license": "MIT",

  "scripts": {
   "prestart": "ng build --prod && ngc",
    "start": "ts-node src/server.ts" },

   "private": true,
  "dependencies": {

  "@angular/animations": "^4.4.6",
  "@angular/common": "^4.0.0",
  "@angular/compiler": "^4.0.0",
  "@angular/core": "^4.0.0",
 "@angular/forms": "^4.0.0",
  "@angular/http": "^4.0.0",
  "@angular/platform-browser": "^4.0.0",
  "@angular/platform-browser-dynamic": "^4.0.0",
  "@angular/platform-server": "^4.*",
  "@angular/router": "^4.0.0",
  "@ng-select/ng-select": "^0.12.0",
  "@ngx-share/core": "^5.0.0-beta.3",
  "@types/jquery": "^3.2.15",
  "angular-progress-http": "^1.0.0",
  "core-js": "^2.4.1",
  "jquery": "^3.2.1",
  "ngx-carousel": "^1.3.5",
  "ngx-page-scroll": "^4.0.2",
  "ngx-progressbar": "^2.1.1",
  "ngx-sharebuttons": "^3.*",
  "rxjs": "^5.1.0",
  "web-animations-js": "^2.3.1",
  "zone.js": "^0.8.4"
},

  "devDependencies": {
  "@angular/cli": "1.1.1",
  "@angular/compiler-cli": "^4.0.0",
  "@angular/language-service": "^4.0.0",
  "@types/jasmine": "2.5.45",
  "@types/node": "~6.0.60",
  "codelyzer": "~3.0.1",
  "jasmine-core": "~2.6.2",
  "jasmine-spec-reporter": "~4.1.0",
  "karma": "~1.7.0",
  "karma-chrome-launcher": "~2.1.1",
  "karma-cli": "~1.0.1",
  "karma-jasmine": "~1.1.0",
  "karma-jasmine-html-reporter": "^0.2.2",
  "karma-coverage-istanbul-reporter": "^1.2.1",
  "protractor": "~5.1.2",
  "ts-node": "~3.0.4",
  "tslint": "~5.3.2",
 "typescript": "~2.3.3"
  }
}

正如@trichetriche所说。您无权访问window服务器端的对象。这里唯一应该提到的是,更好的方法而不是使用

if(window) {}

会是(假设它更“有角度”;)):

import { isPlatformBrowser, isPlatformServer } from '@angular/common';
import { Inject, PLATFORM_ID } from '@angular/core';

constructor(@Inject(PLATFORM_ID) private platformId: any) {}

public someMethod(): boolean {
    if (isPlatformBrowser(this.platformId)) {
         //action specific for browser
    }
}

您可以在我的一个存储库中查看实时示例:https://github.com/maciejtreder/angular-universal-pwa/blob/master/src/app/services/notification.service.ts

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Angular 4 Universal“窗口未定义” 的相关文章

  • 插值将应用于所有 ngfor 元素的范围文本内容

    我正在检索移动的元素顶部和左侧值并将其显示在元素内 问题是当前移动元素的顶部 左侧值修改了所有元素的范围文本顶部 左侧 注意 它修改了我不想要的所有元素的跨度文本 顶部 左侧值 每个元素的顶部 左侧位置都是正确的 不会受到影响 html d
  • Angular 2.0.0-rc3:与 routerLinkActive 匹配的部分路由

    我在用着routerLinkActive在我的主要路由中 a Bob a 当网址为 user the active类将被添加到a标签 但是在主路由下 我还有一些辅助路由 所以 当网址为 user aa 活动将被删除 我希望当 URL 是 u
  • 路由器解析器不渲染组件

    我有这个路由器解析器来从 Google Firestore 检索数据 我正在尝试使用解析器来提前获取数据 当我将调试器放置在解析函数中时 它会显示从服务器检索的数据 但它永远不会从resolve 方法返回 谁能帮我一下 路由模块 const
  • NativeScript 中的多行文本框

    如何在本机脚本中获取支持多行的文本区域 我尝试过使用不支持多行的文本字段 还尝试过此代码将多行添加到文本字段 var myTextfield this page getViewById
  • Angular2:用组件的模板替换主机元素

    我是新来的angular一般而言并且angular2具体来说 我正在尝试编写一个容器组件 其中应该包含子组件 例如容器组件 Component selector my list template ul ul
  • Angular2 RC6 HttpModule手动注入

    我正在将一个项目从 angular2 RC4 迁移到 RC6 并且我有一个自定义表单验证器 需要Http 在迁移之前我使用了ReflectiveInjector与HTTP PROVIDERS 但是对于 RC6 这不再可能了 因为HTTP P
  • 如何使用 Angular2 数据表

    找不到任何使用教程angular2 data table图书馆在这里 https github com swimlane angular2 data table https github com swimlane angular2 data
  • 在组件库中找不到 Angular html 文件

    我正在为 Angular 构建一个组件库 我们将在项目之间共享它 但是当我构建包时 html 文件不会被复制到 dist 文件夹中 我收到错误angular Failed to load text input component html
  • Angular Universal - 不应使用超时

    所以我一直在尝试将我的应用程序转换为角度通用的 并且在大多数情况下它都很好 但我之前读过一些 陷阱 https github com onespeed articles angular universal gotchas https git
  • Angular子路由和404

    查找不存在链接的路线不允许您浏览子链接 应用程序路由 module ts import NgModule from angular core import Routes RouterModule from angular router im
  • 如何将 JSON 响应映射到 Angular 4 中的模型

    我已经尝试了很多 但无法将端点响应映射到我的模型 我正在使用 HttpClient 和 Angular4 我从服务中获取了数据 但它没有正确映射到我的模型类 我有以下 JSON 服务正在返回 result id 1 type User co
  • .net core 2.2 & Angular 7:文件上传控制器中的 IFormFile 始终为 null

    当查看其他答案和一些谷歌时 一切似乎都很好 但我的控制器从未收到任何数据 api uris等正确 请求到达正确的控制器 角度片段 component html 我的输入字段 div class input group div
  • 在 Angular 中将图像 url 转换为 base64

    我正在努力尝试将给定的图像 url 转换为 base64 在我的例子中 我有一个带有图像路径的字符串 var imgUrl assets logoEmpresas empresa logoUrl 我如何直接将给定的图像网址转换为base64
  • font-awesome 字体未加载到 Angular 项目中

    我已经使用 Angular 5 一段时间了 似乎我无法将任何字体很棒的图标加载到我的构建项目中 我完全按照下面链接中提到的步骤进行操作 https www npmjs com package angular font awesome htt
  • 离子和电容器 - Android 启动画面响应能力

    Context 这与闪屏图像响应能力有关 根据我的研究 它之所以发生是因为缺少文档电容器文档 启动画面 https capacitorjs com docs apis splash screen Problem 当实现电容器的闪屏插件时 问
  • 角度材质选择不会检测嵌套组件生成的选项的更改

    我正在尝试提取过滤和显示我的逻辑mat option是我的mat selects 到他们自己的组件中 然而 由于某种原因 会显示选项 但单击它们不会触发事件 我正在编写的网络应用程序有很多mat select每个都可能有很多mat opti
  • HttpParams 在 Angular 中不起作用,出现 502 错误

    我用的是角度8 我在用HttpParams通过以下方式将数据发送到服务器Post method 我正进入 状态502状态码错误 通过HttpPrams发送数据 ERROR HttpErrorResponse 标头 HttpHeaders 状
  • Angular Material 10 日期选择器(mat-datepicker)与其他输入字段不对齐

    使用 Angular 10 和 Angular Material 10 在表单中使用日期选择器与其他输入表单字段不对齐 如下图所示 字段未对齐 https i stack imgur com D4Hc4 png component html
  • 路由器在 Ionic 上导航,并在 ios 上使用角度动画闪烁动画

    我正在使用 angular animations 在 Ionic v4 上的两个页面之间设置页面转换 这一切在 chrome 上都很好用 但在 safari 上却不行 在一个只有两个页面 热切加载 的简单应用程序上 我仍然遇到问题 与我尝试
  • 适用于 Angular 2+ 的具有多个日期选择的日历

    我需要显示一个日历并让用户选择多个日期 例如2017 年 1 月 2 日 2017 年 1 月 3 日 2017 年 1 月 4 日 也就是说 不是一个范围 而是多个日期 在 Angular 1 x 中 我使用了gm datepickerM

随机推荐

  • 是否可以通过编程方式清除控制台历史记录?

    使用控制台应用程序时 在某个位置输入的所有内容的历史记录Console ReadLine 被储存了 当控制台提示输入某些内容时 按向上 向下光标将滚动浏览此历史记录 并且可以通过按 F7 查看整个历史记录 使用 C 是否有办法禁用此行为或清
  • 从 YouTube 网址获取持续时间

    我正在寻找一个函数 可以从 url 中提取视频的 YouTube 持续时间 我读了一些教程但不明白 我使用网址在我的网站上嵌入视频 并且我有一个提取缩略图的功能 我只想要类似的东西来获取持续时间 这是我如何获得拇指 function get
  • iOS:应用程序内购买管理多个自动续订订阅,具有升级和降级选项

    我们正在为 iPhone 开发一款 iOS 应用程序 该应用程序将具有免费功能 并且该应用程序将具有高级功能 其中有 4 个应用程序内购买自动续订订阅选项 如下所示 单月订阅 单年订阅 家庭包月 家庭每年订阅 我们将在应用程序内有一个商店屏
  • Flask 下载文件

    我正在尝试使用 Flask 创建一个网络应用程序 让用户上传文件并将其提供给另一个用户 现在 我可以将文件上传到上传文件夹正确 但我似乎找不到一种方法让用户下载回来 我将文件名存储到数据库中 我有一个为数据库对象提供服务的视图 我也可以删除
  • 在 Jenkins 从节点上运行的 Jenkinsfile 中执行 docker build 命令的最简单方法?

    我希望 Jenkinsfile 执行的操作的基本示例 node sh docker build t foo bar 看来我需要将 docker 安装到正在执行 Jenkinsfile 的 Jenkins 从属映像上 有一个简单的方法可以做到
  • 关闭来自服务器的 akka-http websocket 连接

    在我的场景中 客户端发送 再见 websocket 消息 我需要关闭之前在服务器端建立的连接 来自 akka httpdocs 通过从服务器逻辑取消传入连接 Flow 可以关闭连接 例如 通过将其下游连接到 Sink cancelled 将
  • contenteditable 无法在 IE 10 中工作

    我正在尝试创建客户端可编辑表 这是我的代码 它适用于 Chrome Firefox 但不适用于 IE 还有什么与 IE 脚本有关的吗
  • 如何使用java压缩文件夹本身

    假设我有以下目录结构 D reports january 假设一月份有两个 Excel 文件 分别为 A xls 和 B xls 有很多地方都写过如何使用压缩文件java util zip 但我想将 january 文件夹本身压缩到 rep
  • Base64 背景图像多行?

    是否可以放base64背景图像是多行而不是一长行 如果是这样 怎么办 我当前的主体 CSS 是 body background color FFFFFF background image url data image png base64
  • WPF:使用效果显示和隐藏 ItemsControl 中的项目

    我一直在使用这篇很棒的文章作为显示和隐藏具有过渡效果的元素的基础 它工作得非常巧妙 因为它可以让你绑定Visibility属性就像平常一样 然后定义当可见性发生变化时会发生什么 例如 设置其不透明度的动画或触发故事板 当您隐藏某个元素时 它
  • 如何向下滑动 div 然后 .fadeIn() 内容,反之亦然?

    Goal 当用户单击该按钮时 相关 div 将 滑下 stop 淡入内容 当用户再次单击该按钮时 div 将 fade out stop slide up 当前位置 这是一个示例 其中fadeIn and fadeOut发生在正确的时间 但
  • 如何检查我是否处于已检查的上下文中?

    我如何使用 C 代码知道我是否处于checked无论是否有上下文 都不会导致 捕获OverflowException 会带来性能损失吗 块之间的唯一区别是checked vs unchecked是编译器生成的用于基本值类型算术运算的IL指令
  • 使用 ISQL 执行脚本

    我正在创建一个简单的 isql 脚本 但它不起作用 我需要一些帮助来找出它出了什么问题 我需要连接到数据库并执行 SQL 文件 这是我的脚本 名为 script sql CONNECT localhost C Monde Servidor
  • 有 3 列的表。固定中心列宽度。如何在其他两列上共享宽度?

    我有一个 100 宽度的 3 列表格 中心列的宽度必须为 600 像素 如何在用完剩余空间的同时让另外两个宽度相等 table style width 100 tr td left td td style width 600px cente
  • 将复合语句放入 for 循环的条件中

    我有一个人为的例子来演示对特定功能的请求 我想知道是否有人有一个聪明的技巧来做到这一点 以下是一个经常遇到的问题 打印一系列数字 在它们之间打印一个空格 并在末尾打印一个回车符 但没有空格 显而易见的解决方案是使最后一个 或第一个 语句成为
  • 使用 OutVariable 创建 ArrayList

    我确信发生这种情况是有正当理由的 但我不知道它是什么 我有以下代码 Deleted Items 0 ParentNode RemoveChild Items 0 Write Output Deleted 如果我使用调用此代码 Do Some
  • 通过python从音频文件中提取音频频谱

    抱歉 如果我提交重复的内容 但我想知道 python 中是否有任何库可以使您能够从音频文件中提取声谱 我希望能够获取音频文件并编写一个算法 该算法将返回一组数据 TimeStampInFile 频率 幅度 我听说这通常称为节拍检测 但据我所
  • HTTP 错误代码 505

    我已经在 google 上搜索过 505 是 不支持 HTTP 版本 但仍然无法弄清楚我的问题 我有一个带有 Tomcat 的 Web 应用程序 服务器端带有自签名证书来启用 HTTPS 无需验证客户端 客户端将验证服务器证书 我分析了wi
  • WPF 与 WinForms 或丰富的 UI 与稳定的应用程序?您如何看待 Windows 窗体平台的未来? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 WPF 与 WinForm
  • Angular 4 Universal“窗口未定义”

    我的项目运行完美 但是当我实现通用时 我得到 窗口未定义 我的错误如下 node modules hammerjs hammer js 2643 window document Hammer ReferenceError window is