角度 2 beta 即 10 “潜在未处理的拒绝 [3] 语法错误:预期”

angular 2 beta ie 10 "Potentially unhandled rejection [3] SyntaxError: Expected"

本文关键字:语法 错误 预期 拒绝 beta 未处理 角度      更新时间:2023-09-26

这是一个 Angular 2 Beta 问题。 起初我特别笼统,希望这是一个已知错误,我只是在所有搜索中都错过了一些东西。 当 Angular 2 Beta.0 问世时,我使用 IE10 在我的应用程序中运行了一个非常简单的模块。 它基本上打印了类似"我的第一个模块"的东西。

当 Angular 2 Beta.1 问世时,我尝试运行相同的代码并得到以下错误。 这在 Angular2 2.0.0-beta.2 和 angular2 2.0.0-beta.3 中也发生:

    EXCEPTION: SyntaxError: Expected ';' 

堆栈跟踪:

SyntaxError: Expected ';'
   at evalExpression (.../js/angular/angular2/bundles/angular2.dev.js:452:5)
   at _createViewFactoryRuntime (.../js/angular/angular2/bundles/angular2.dev.js:24190:9)
   at Anonymous function (.../js/angular/angular2/bundles/angular2.dev.js:24144:13)
   at run (.../js/angular/angular2/bundles/angular2-polyfills.js:1243:14)
   at Anonymous function (.../js/angular/angular2/bundles/angular2.dev.js:13408:15)
   at zoneBoundFn (.../js/angular/angular2/bundles/angular2-polyfills.js:1220:14)
   at lib$es6$promise$$internal$$tryCatch (.../js/angular/angular2/bundles/angular2-polyfills.js:468:10)
   at lib$es6$promise$$internal$$invokeCallback (.../js/angular/angular2/bundles/angular2-polyfills.js:480:10)
   at Anonymous function (.../js/angular/angular2/bundles/angular2-polyfills.js:1028:14)
   at Anonymous function (.../js/angular/angular2/bundles/angular2-polyfills.js:123:10)

-----异步间隙-----

Error
   at _getStacktraceWithCaughtError (.../js/angular/angular2/bundles/angular2-polyfills.js:2240:10)
   at Anonymous function (.../js/angular/angular2/bundles/angular2-polyfills.js:2285:14)
   at bind (.../js/angular/angular2/bundles/angular2-polyfills.js:1218:10)
   at bindArguments (.../js/angular/angular2/bundles/angular2-polyfills.js:1401:14)
   at Anonymous function (.../js/angular/angular2/bundles/angular2-polyfills.js:1413:18)
   at Anonymous function (.../js/angular/angular2/bundles/angular2.dev.js:24142:11)
   at run (.../js/angular/angular2/bundles/angular2-polyfills.js:1243:14)
   at Anonymous function (.../js/angular/angular2/bundles/angular2.dev.js:13408:15)
   at zoneBoundFn (.../js/angular/angular2/bundles/angular2-polyfills.js:1220:14)
   at lib$es6$promise$$internal$$tryCatch (.../js/angular/angular2/bundles/angular2-polyfills.js:468:10)

-----异步间隙-----

Error
   at _getStacktraceWithCaughtError (.../js/angular/angular2/bundles/angular2-polyfills.js:2240:10)
   at Anonymous function (.../js/angular/angular2/bundles/angular2-polyfills.js:2285:14)
   at bind (.../js/angular/angular2/bundles/angular2-polyfills.js:1218:10)
   at bindArguments (.../js/angular/angular2/bundles/angular2-polyfills.js:1401:14)
   at Anonymous function (.../js/angular/angular2/bundles/angular2-polyfills.js:1413:18)
   at _compileComponentRuntime (.../js/angular/angular2/bundles/angular2.dev.js:24131:9)
   at _compileNestedComponentRuntime (.../js/angular/angular2/bundles/angular2.dev.js:24159:7)
   at Anonymous function (.../js/angular/angular2/bundles/angular2.dev.js:24140:13)
   at forEach (.../js/angular/es6-shim/es6-shim.min.js:10:16871)
   at Anonymous function (.../js/angular/angular2/bundles/angular2.dev.js:24139:11)

-----异步间隙-----

Error
   at _getStacktraceWithCaughtError (.../js/angular/angular2/bundles/angular2-polyfills.js:2240:10)
   at Anonymous function (.../js/angular/angular2/bundles/angular2-polyfills.js:2285:14)
   at bind (.../js/angular/angular2/bundles/angular2-polyfills.js:1218:10)
   at bindArguments (.../js/angular/angular2/bundles/angular2-polyfills.js:1401:14)
   at Anonymous function (.../js/angular/angular2/bundles/angular2-polyfills.js:1413:18)
   at _compileComponentRuntime (.../js/angular/angular2/bundles/angular2.dev.js:24131:9)
   at compileHostComponentRuntime (.../js/angular/angular2/bundles/angular2.dev.js:24085:9)
   at compileInHost (.../js/angular/angular2/bundles/angular2.dev.js:24436:7)
   at loadAsRoot (.../js/angular/angular2/bundles/angular2.dev.js:12326:7)
   at useFactory (.../js/angular/angular2/bundles/angular2.dev.js:12424:9)

-----异步间隙-----

Error
   at _getStacktraceWithCaughtError (.../js/angular/angular2/bundles/angular2-polyfills.js:2240:10)
   at Anonymous function (.../js/angular/angular2/bundles/angular2-polyfills.js:2285:14)
   at _createInnerZone (.../js/angular/angular2/bundles/angular2.dev.js:13396:7)
   at NgZone (.../js/angular/angular2/bundles/angular2.dev.js:13262:9)
   at createNgZone (.../js/angular/angular2/bundles/angular2.dev.js:12446:5)
   at application (.../js/angular/angular2/bundles/angular2.dev.js:12521:7)
   at bootstrap (.../js/angular/angular2/bundles/angular2.dev.js:24631:5)
   at main (Unknown script code:9:9)
   at Anonymous function (.../communicationReport.do?dispatch=showCommunicationCounts&wsession=new&entityId=10009ndlgxmw:34:14)
   at run (.../js/angular/angular2/bundles/angular2-polyfills.js:1243:14)

我正在加载的文件(与 Angular 2 Beta.0、Angular 2 Beta.1、Angular 2 Beta.2 相同(是:

<script src="js/angular/es6-shim/es6-shim.min.js"></script>
<script src="js/angular/systemjs/dist/system-polyfills.js"></script>
<script src="js/angular/angular2/bundles/angular2-polyfills.js"></script>
<script src="js/angular/systemjs/dist/system.src.js"></script>
<script src="js/angular/rxjs/bundles/Rx.js"></script>
<script src="js/angular/angular2/bundles/angular2.dev.js"></script>

更新:我的boot.ts看起来像:

import {bootstrap}    from 'angular2/platform/browser';
import {CountsComponent} from './counts.component';
export function main() {
    bootstrap( CountsComponent );
}

我的counts.component.ts文件看起来像:

  import {Component} from 'angular2/core';
@Component({
    selector: 'counts',
    template: '<h1>Landing Page1</h1>'
})
export class CountsComponent { }

初始 html 看起来像

    <script>
      System.config({
        transpiler: 'typescript', 
        typescriptOptions: { emitDecoratorMetadata: true }, 
        packages: {'modules/counts': {
            format: 'register',
            defaultExtension: 'js'}} 
      });
      System.import('modules/counts/boot')
            .then(function( bootstrap ) {
                bootstrap.main();
            }, console.error.bind(console));
    </script>
  </head>
  <!-- 3. Display the application -->
  <body class="counts">
    <counts>Loading 1...</counts>
  </body>

这是一个已知问题吗? 它有修复吗? 您需要更多信息吗?

我有同样的问题。在 plunker 中找到了一个快速修复。在 plunker 示例中的 es6-shim.min.js 脚本之前插入以下代码:

<script>
    if (!Function.name) {
        Object.defineProperty(Function.prototype, "name", {
            get: function () {
              var result = this.toString();
                var results = /function (.{1,})'(/.exec(this.toString());
                return (results && results.length > 1) ? results[1] : result;
            }
        });     
    } else if (navigator.userAgent.indexOf("Trident") != -1) {
        console.warn("QUICK FIX NAME ON FUNCTION IS OBSOLETE.");
    }
</script>

此快速修复不能解决 angular 2 和 IE 的所有问题。希望这是一些帮助...

在 angular 版本 2.0.0-beta.8 中通过包括以下内容解决了问题:

Angular2/ES6/dev/src/testing/shims_for_ie.js

不再需要快速修复。