select器“my-app”与任何元素都不匹配
问题是当我运行我的应用程序,它工作正常。 但是,当我刷新它,大部分时间我得到下面的味精。
select器“my-app”与任何元素都不匹配
但奇怪的是,当我刷新我的应用程序很多次,它也可以。
所以最终我有一个奇怪的行为,我的应用程序,无法弄清楚这一点。
有时候它有时候不会…
任何build议,不能拿出代码?
注:我没有复杂的结构或组件,但实现简单。
这发生在我身上,因为我是在head
标记中导入我的代码,所以它可能正在运行,并在DOM准备好之前尝试引导。
您可以将脚本移动到body
标记的底部,也可以将引导程序代码放入事件侦听器中:
document.addEventListener("DOMContentLoaded", function(event) { bootstrap(AppComponent); });
要么:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Example app</title> </head> <body> <my-app></my-app> </body> <script src="main.js" charset="utf-8"></script> </html>
Angular 4:我必须在index.html文件中用<my-app></my-app>
更改<app-root></app-root>
当我使用Angular Universal时,我遇到了同样的问题。 但这是因为我在main.node.ts中使用BrowserModule
,解决scheme是
imports: [ UniversalModule, BrowserModule // <- delete this will solve the issue ],
并检查这里更多的信息: https : //github.com/angular/universal/issues/542
如果您从这里使用angular2 / asp.net核心模板: http : //blog.stevensanderson.com/2016/10/04/angular2-template-for-visual-studio/您可能会发现replace最后几行boot-client.ts与以下帮助(并避免了HMR重新加载页面时,很多可怕的控制台错误):
const bootApplication = () => { platform.bootstrapModule(AppModule); }; if (document.readyState === 'complete') { window.onload = () => bootApplication(); location.reload(); } else { document.addEventListener('DOMContentLoaded', bootApplication); }
要做的事情:
- 去app.module.ts (主模块,在大多数情况下,这是一个名字)
-
检查你是否有部分“ boostrap :” – 如果没有添加:
bootstrap: [AppComponent]
//其中AppComponent是您的主要组件 -
检查它是否现在工作,如果没有 – 去AppComponent并检查您的select器 。 它应该和index.html中的标签一样
所以index.html应该包含这样的东西:
<body> <app-root>Loading...</app-root> </body>
而不是<app-root>
,而应该使用主AppComponent中的select器
- 如果你在外部网站上使用你的angular度应用程序,那么你应该考虑在angular文件的头文件中使用延迟