我在普通的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中。
答案 0 :(得分:1)
<强>更新强>
修正于beta.16
<强>原始强>
这是文件缩小版
的已知问题实际上报道了很多不同的相关问题
https://github.com/angular/angular/search?q=minified&type=Issues&utf8=%E2%9C%93
答案 1 :(得分:1)
Angular2 github存储库中存在一些与此问题相关的问题。
以下是有关ngDoCheck
功能的内容: