首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Angular2 -选择器"my-app“不匹配任何元素(仅在第一次加载时)

Angular2 -选择器"my-app“不匹配任何元素(仅在第一次加载时)
EN

Stack Overflow用户
提问于 2016-02-05 23:45:21
回答 8查看 11K关注 0票数 2

有人知道为什么当页面第一次在我的Angular2应用程序中加载时,我会出现这个错误吗?当我浏览我的应用程序时,它会清除,不会回来。如果我点击CTRL+F5,它就会回来(虽然不是每次都这样!)此应用程序的路由如下:

代码语言:javascript
运行
复制
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

EN

回答 8

Stack Overflow用户

发布于 2016-05-06 14:23:18

也许您应该将<script>标记添加到index.html文件中的</body>标记之后。

您的脚本应该在DOM准备好之后运行。

更新:

代码语言:javascript
运行
复制
<body>
  <my-app>Loading...</my-app>
  <script>
    //Your scripts
  </script>
</body>
票数 5
EN

Stack Overflow用户

发布于 2016-05-06 14:26:02

我想index.html中没有与AppComponent中的选择器匹配的元素。

票数 1
EN

Stack Overflow用户

发布于 2016-03-09 23:54:01

在index.html中,应该与路由器的app.ts组件选择器相匹配。

代码语言:javascript
运行
复制
@Component({
  selector: 'my-app',
  directives: [ROUTER_DIRECTIVES],
  template: `

/

代码语言:javascript
运行
复制
<body>
    <script>
        System.config({
            packages: {
                appScripts: {
                    defaultExtension: 'js'
                }
            }
        });
        System.import('appScripts/app')
              .then(null, console.error.bind(console));
    </script>
       <my-app></my-app> <!--  -->
</body>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35235430

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档