TypeScript / Angular2:tagDef.requireExtraParent不是函数

时间:2016-03-16 01:17:25

标签: firefox typescript angular transpiler es6-shim

研究错误,

  

" EXCEPTION:TypeError:tagDef.requireExtraParent不是函数"

它实际上会在Google上返回0结果。

背景

  • 网站在Chrome和Safari上运行良好。尚未对IE进行过测试。在那里完全独立的噩梦。
  • 错误仅适用于Firefox(似乎所有版本。目前在45上)
  • 我使用System从TypeScript转换为ES5,以及Angular快速入门
  • 如果重要,请在Mac上
  • Angular2,beta 9

该网站非常基础。我已经删除了所有可能的并发症,看起来错误只是在引导本身。也许缺少填料?

的index.html                                        

<script>
  System.config({
    transpiler: 'typescript', 
    typescriptOptions: { emitDecoratorMetadata: true }, 
    packages: {
        'js': {
            defaultExtension: 'js'
        }
    } 
  });
  System.import('js/main')
        .then(null, console.error.bind(console));

main.ts(切入点)

/// <reference path="../../node_modules/angular2/typings/browser.d.ts" />

import {HTTP_PROVIDERS} from 'angular2/http';
import {bootstrap}    from 'angular2/platform/browser';
import {AppComponent} from './app/components/app';
import 'rxjs/Rx'

bootstrap(AppComponent, [HTTP_PROVIDERS]); // if i comment this out, the error disappears indicating that it lives somewhere in app.ts.

app.ts

import {Component} from 'angular2/core';

@Component({
    selector: "myapp",
    templateUrl: "templates/app.html",
    directives: [],
    providers: []
})

export class AppComponent {}

我尝试了什么

添加一些额外的polyfill,例如html_parser,它似乎是定义requireExtraParent方法的地方。

<script type="text/javascript" src="dist/lib/html_parser.js"></script>

消除任何编译/转换错误。

挖掘到如此之深以至于谷歌甚至找不到任何东西。

2 个答案:

答案 0 :(得分:1)

您的解决方案是spoton

src

答案 1 :(得分:0)

问题是我在Angular中使用保留字作为标签(手表)。

<services></services>
<collage></collage>
<watch></watch>  <== problem
<collage></collage>

将其改为此作品:

<services></services>
<collage></collage>
<watchit></watchit>  <== works fine
<collage></collage>

这是不可能调试的。我不得不一行一行地评论一下,直到最终我发现它是在html中,最后哪条线特别引入了这个问题。

只有当其他人点击这个时才发布,他们不会那么疯狂。