有人知道为什么当页面第一次在我的Angular2应用程序中加载时,我会出现这个错误吗?当我浏览我的应用程序时,它会清除,不会回来。如果我点击CTRL+F5,它就会回来(虽然不是每次都这样!)此应用程序的路由如下:
AppComponent.ts
LoginComponent.ts
DashboardComponent(Parent route with its own child routes)
MainDashboardComponent
EmployeesComponent
顶层的index.html文件中有一个<my-app></my-app>
标记,错误会周期性地抱怨,所以我搞不懂为什么它不会在页面上看到那个标记!
错误详细信息:
例外情况:选择器"my-app“与任何elementsBrowserDomAdapter.logError @ angular2.dev.js:13405collection_1.StringMapWrapper.merge.onError @ angular2.dev.js:22834ExceptionHandler.call @angular2.dev.js:1163(匿名函数)@ angular2.dev.js:12481NgZone._notifyOnError @angular2.dev.js:13405collection_1.StringMapWrapper.merge.onError@ angular2.dev.js:13309run @angular2-poly钎料.my:141(匿名函数)@ angular2.dev.js:13328zoneBoundFn @ angular2-polyfills.js:111lib$es6$promise$$internal$$tryCatch @angular2-poly滤饼.my不匹配:$1511 138$ES6$承诺$$内部$invokeCallback@ angular2-polyfills.js:1523lib$es6$promise$$internal$$publish @angular2-polyengus.js:1494(匿名函数)@angular2-polyengus.js:243 243microtask@ angular2.dev.js:13360run @angular2-poly之母。es6:138(匿名函数)@ angular2.dev.js:13328zoneBoundFn @ angular2-polyfills.js:111lib$es6$promise$asap$$flush @angular2-poly滤器。es6:1305 angular2.dev.js:22823 STACKTRACE:BrowserDomAdapter.logError @ angular2.dev.js:22823ExceptionHandler.call @angular2.dev.js:1165(匿名功能)@ angular2.dev.js:12481NgZone。@ angular2.dev.js:13405collection_1.StringMapWrapper.merge.onError @ angular2.dev.js:13309run @angular2-Polyengus.js:141(匿名函数)@ angular2.dev.js:13328zoneBoundFn @ angular2-polyfills.js:1511lib$es6$promise$$internal$$invokeCallback @ angular2-polyfills.js:1523lib$es6$promise$$internal$$publish @angular2-angular2-polyfills.js:1523lib$es6$promise$$internal$$publish@ angular2-polyfills.js:111lib$es6$promise$asap$$flush @angular2- angular2.dev.js:22823 s.js:1305 angular2.dev.js:22823错误:选择器"my-app“没有匹配在DomRenderer.selectRootElement (modules/angular2/bundles/angular2.dev.js:13724:15)、HostViewFactory.viewFactory_HostAppComponent0 as viewFactory at AppViewManager_.createRootHostView (modules/angular2/bundles/angular2.dev.js:9226:34)、modules/angular2/bundles/angular2.dev.js:12246:46 at Zone.run (modules/angular2/bundles/angular2-polyfills.js:138:17)、Zone.run (modules/angular2/bundles/angular2.dev.js:13328:32)的新BaseException (modules/angular2/bundles/angular2.dev.js:7104:21)中的任何元素在zoneBoundFn (modules/angular2/bundles/angular2-polyfills.js:111:19),$ES6,$$承诺,$$内部$$约,promise (modules/angular2/bundles/angular2-polyfills.js:1511:16),$lib,$ES6,$$内部$invokeCallback (modules/angular2/bundles/angular2-polyfills.js:1523:17) Injector._instantiateProvider (modules/angular2/bundles/angular2.dev.js:11287:21) at Injector._new (modules/angular2/bundles/angular2.dev.js:11277:19) angular2.dev.js:13405collection_1.StringMapWrapper.merge.onError @ angular2.dev.js:22823ExceptionHandler.call @angular2.dev.js:1166(匿名函数)@ angular2.dev.js:12481NgZone._notifyOnError @angular2.dev.js:12481NgZone._notifyOnError@ angular2.dev.js:13309run @angular2-多填料.141:141(匿名函数)@ angular2.dev.js:13328zoneBoundFn @ angular2-polyfills.js:111lib$es6$promise$$internal$$tryCatch @ angular2-polyfills.js:1511lib$es6$promise$$internal$$invokeCallback @ angular2-polyfills.js:1523lib$es6$promise$$internal$$publish @angular2功能)@angular2- angular2-polyfills.js:111lib$es6$promise$asap$$flush @angular2- angular2.dev.js:13360run @angular2-138:138(匿名函数)@ angular2.dev.js:13328zoneBoundFn @angular2.dev.js:13328zoneBoundFn@angular2
发布于 2016-05-06 14:23:18
也许您应该将<script>
标记添加到index.html文件中的</body>
标记之后。
您的脚本应该在DOM准备好之后运行。
更新:
<body>
<my-app>Loading...</my-app>
<script>
//Your scripts
</script>
</body>
发布于 2016-05-06 14:26:02
我想index.html
中没有与AppComponent
中的选择器匹配的元素。
发布于 2016-03-09 23:54:01
在index.html中,应该与路由器的app.ts组件选择器相匹配。
@Component({
selector: 'my-app',
directives: [ROUTER_DIRECTIVES],
template: `
/
<body>
<script>
System.config({
packages: {
appScripts: {
defaultExtension: 'js'
}
}
});
System.import('appScripts/app')
.then(null, console.error.bind(console));
</script>
<my-app></my-app> <!-- -->
</body>
https://stackoverflow.com/questions/35235430
复制相似问题