Angular2:当我使用缩小(.min)版本的js时,我收到错误

时间:2016-04-01 11:10:32

标签: angular

我在普通的javascript中使用angular2。 我包含这些文件:

<script type="text/javascript" src="libs/es6-shim/es6-shim.min.js"></script>
<script type="text/javascript" src="libs/es6-shim/shims_for_IE.js"></script>
<script type="text/javascript" src="libs/angular/2.0.0-beta.13/angular2-polyfills.js"></script>
<script type="text/javascript" src="libs/angular/2.0.0-beta.13/Rx.umd.js"></script>
<script type="text/javascript" src="libs/angular/2.0.0-beta.13/angular2-all.umd.js"></script>

当我更改为包含最后3的缩小版本(.min)时:

<script type="text/javascript" src="libs/angular/2.0.0-beta.13/angular2-polyfills.min.js"></script>
<script type="text/javascript" src="libs/angular/2.0.0-beta.13/Rx.umd.min.js"></script>
<script type="text/javascript" src="libs/angular/2.0.0-beta.13/angular2-all.umd.min.js"></script>

我收到此错误:

EXCEPTION: TypeError: this.directive_1_0.ngDoCheck is not a function in [{'current-page': nav_selected=='search'} in class26@5:68]

触发该错误的位置在app.view.html

<router-outlet></router-outlet>

<!-- This is the menu -->
<nav id="menu">
    <a [routerLink]="['Search']" (click)="onNavItemClick('search')" [ngClass]="{'current-page': nav_selected=='search'}" id="search">Search</a>
    <a [routerLink]="['Results']" (click)="onNavItemClick('results')" [ngClass]="{'current-page': nav_selected=='results'}" id="results">Results</a>
</nav>

我的引导程序如下所示:

ng.core.enableProdMode();
ng.platform.browser.bootstrap(AppComponent,[
            ng.http.HTTP_PROVIDERS,
            ng.router.ROUTER_PROVIDERS,
            new ng.core.Provider(ng.router.LocationStrategy, {useClass: ng.router.HashLocationStrategy})
]);

如果我只是从.min文件中移除angular2-all.umd.min.js,我就不会有任何错误。

此外,如果我从app.view.html删除这2行,我会收到其他错误:

EXCEPTION: Error: Uncaught (in promise): No Directive annotation found on t

我做错了什么只适用于非缩小文件?或者我应该做些什么来处理min文件?

编辑2015年4月8日 这个问题仍然存在于2.0.0-beta.14中。

2 个答案:

答案 0 :(得分:1)

<强>更新

修正于beta.16

<强>原始

这是文件缩小版

的已知问题

实际上报道了很多不同的相关问题

https://github.com/angular/angular/search?q=minified&type=Issues&utf8=%E2%9C%93

答案 1 :(得分:1)

Angular2 github存储库中存在一些与此问题相关的问题。

以下是有关ngDoCheck功能的内容: