- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
每当我尝试加载我的 ang2 应用程序时,我都会收到此错误。
angular2-polyfills.js:1243 TypeError: Cannot read property 'getOptional' of undefined
Error loading http://localhost:8081/app/boot.js
at _runAppInitializers (http://localhost:8081/node_modules/angular2/bundles/angular2.dev.js:12628:25)
at PlatformRef_._initApp (http://localhost:8081/node_modules/angular2/bundles/angular2.dev.js:12603:21)
at PlatformRef_.application (http://localhost:8081/node_modules/angular2/bundles/angular2.dev.js:12550:22)
at Object.bootstrap (http://localhost:8081/node_modules/angular2/bundles/angular2.dev.js:24805:64)
at execute (http://localhost:8081/app/boot.js:36:23)
at ensureEvaluated (http://localhost:8081/node_modules/systemjs/dist/system.src.js:3186:26)
at Object.execute (http://localhost:8081/node_modules/systemjs/dist/system.src.js:3304:13)
at doDynamicExecute (http://localhost:8081/node_modules/systemjs/dist/system.src.js:703:25)
at link (http://localhost:8081/node_modules/systemjs/dist/system.src.js:905:20)
at doLink (http://localhost:8081/node_modules/systemjs/dist/system.src.js:557:7)
我尝试在索引文件中添加和切换 shim es6 js 与其他脚本,但这没有帮助。在我从 repo 中提取最新版本后,此错误开始出现。我恢复到我自己的版本,因为我无法从我的同事那里找到任何会给我这个问题的更改,但不知何故错误并没有消失。他们的版本没有错误。我还尝试从 boot.ts 的 Bootstrap 中删除每个服务和提供程序。没有错误弹出。但是当我把那些提供者和策略放回去时,'getOptional of undefined' 又开始出现了。
/**
* boot.ts
*/
import {AppComponent} from './app.component';
import {bootstrap} from 'angular2/platform/browser';
import {HTTP_PROVIDERS} from "angular2/http";
import {ROUTER_PROVIDERS,RouteConfig,RouteParams,ROUTER_DIRECTIVES, LocationStrategy, HashLocationStrategy} from "angular2/router";
import {CardService} from "./game/card/card.service";
import {provide} from "angular2/core";
import {ThemeService} from "../app/game/theme/theme.service"
import {OrganisationService} from "./game/organisation/organisation.service";
import {UserService} from "./game/user/user.service";
import {SocketService} from "./helpercomponents/SocketService";
bootstrap(AppComponent,[
HTTP_PROVIDERS,
ROUTER_PROVIDERS, provide(LocationStrategy, {useClass: HashLocationStrategy}),
CardService,
ThemeService,
UserService,
OrganisationService
]);
<html>
<head>
<title>Kandoe</title>
<base href="/" />
<script src="./node_modules/angular2/bundles/angular2-polyfills.js"></script>
<script src="./node_modules/systemjs/dist/system.src.js"></script>
<script src="./node_modules/rxjs/bundles/Rx.js"></script>
<script src="./node_modules/angular2/bundles/angular2.dev.js"></script>
<script src="./node_modules/angular2/bundles/router.dev.js"></script>
<script src="./node_modules/angular2/bundles/http.dev.js"></script>
<script src="//code.jquery.com/jquery-1.12.0.min.js"></script>
<script src="//code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
<script src="./node_modules/bootstrap/dist/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/dropzone/4.2.0/dropzone.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/stomp.js/2.3.3/stomp.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/sockjs-client/1.0.3/sockjs.js"></script>
<link href='http://fonts.googleapis.com/css?family=Open+Sans:400,700' rel='stylesheet' type='text/css'>
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
<link rel="stylesheet" href="node_modules/bootstrap/dist/css/bootstrap.min.css">
<link rel="stylesheet" href="app/css/login-register.css">
<link rel="stylesheet" href="app/css/organisation-detail-browse.css">
<link rel="stylesheet" href="app/css/dropzone.css">
<link rel="stylesheet" href="app/css/game.css">
<link rel="stylesheet" href="app/css/circle-session.css">
<script>
System.config({
packages: {
app: {
format: 'register',
defaultExtension: 'js'
}
}
});
System.import('app/boot')
.then(null, console.error.bind(console));
</script>
</head>
<body>
<my-app>Loading...</my-app>
</body>
</html>
最佳答案
我无法确切地弄清楚原因是什么,但是在 tsconfig 中将 es6 更改为 es5 使其再次工作。
关于未定义的 polyfills 的 Angular2 getOptional,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36106505/
https://github.com/Yaffle/EventSource 我使用上面的是因为我想获得在 IE11 中工作的 promise ,我已经用 npm 安装了它但不确定我应该如何实现它。我在
有没有办法“摇树”babel-polyfill,这样只有我使用的功能是 polyfill? 也就是说,如果我从不在我的代码中使用 String.padStart,则不应包含它的 polyfill。 最
在我的入口点中使用 babel 转换将 babel-polyfill 导入到 Browserify 后,IE11 仍然提示 Object.assign。除了 Object.assign 之外,我的项目
这里是 Polyfill 新手。我对这个简单的例子完全感到困惑,在这个例子中我想初始化一个类型化数组: var x = new Uint8Array(3).fill(42); console.log(
我正在使用 ChildNode.remove()并且我由 Mozilla 描述我需要一个用于 IE 的 polyfill。我正在使用配置了 babel-polyfill 的 webpack: "ba
我正在使用 nuxt vuetify 模板构建一个静态站点,虽然它很棒并且提供了很多已经为我完成的配置和设置,但我发现很难让我的站点在 Internet Explorer (11) 上顺利运行。 由于
使用 core-js 填充的函数(例如,babel-polyfill)显示为原生。 Promise.race.toString() 产生: function race() { [native
我有以下实用程序: // Utility function to remove base64 URL prefix and store base64-encoded string in
我得到的错误 Error: Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has b
我正在学习基于 React 的 Udemy 类(class)(这是 Brad Schiff 为我们其他人准备的 React 类(class) here),我收到一个与 webpack 相关的错误,导致
我将 Ionic 3 项目升级为 Ionic 4 项目。使用“ionic serve”启动服务器时,我总是会收到上述错误。 我试过很多东西,例如: 在 polyfills.ts 文件中, (windo
我知道每个已知的浏览器都支持“decodeURIComponent”,但我试图通过 polyfill 来更好地理解它。 Atob、Btoa 有很多 polyfill……但出于某种原因,我没有找到任何用
我无法理解为什么检查对应于行 if (i in t) - 第 18 行放在 filter function polyfill 中: if (!Array.prototype.filter) { A
我正在尝试为传播运算符创建一个 polyfill。我的目标是创建类似于扩展运算符的东西,我可以使用三重 @@@ 符号代替三重点。 例如,在 ES6 中 function sum(x, y, z) {
This article启发我将我为 React 应用程序加载的 polyfill 外部化,并且只为需要它们的浏览器加载它们。一个简单的测试: function browserSupportsAllF
我创建了一个自托管 ServiceStack 服务,该服务基于其 showcase chat application 在 Windows 服务中运行。 。 但是,我没有进一步讨论的是尝试将客户端编写为
我正在开始一个新项目,目标是 MSVC、GCC(最新)、GCC 4.3 ARM 等等。我们构建的 waf 构建系统具有编译器的 C++11 功能检测。 我现在为 C++11 目标编译器中的所有功能提供
我正在寻找一种工具,它可以让我利用 native HTML5 拖放功能,并填充对过去浏览器的支持。 有这样的东西吗? Modernizr 的页面 (https://github.com/Moderni
是否有一个 polyfill 来处理 Safari 4 (iOS) 和 IE 中的 CSS 背景大小调整 最佳答案 可以试试这个。 http://nooshu.com/jquery-plug-in-s
我正在构建一个我的目标群体非常普遍的网站(13 岁到 oo,所以你好 IE9,你好古老的 android 浏览器),所以我需要 polyfills 来处理一些东西(viewport,calc 等)。在
我是一名优秀的程序员,十分优秀!