问题是当我运行我的应用程序时,它运行良好。但是当我刷新它时,大多数时候我都低于味精。
选择器“ my-app”与任何元素都不匹配
但是奇怪的是,当我刷新我的应用程序很多时候它也可以工作。
因此,最终我的应用程序出现异常行为,无法弄清这一点。
有时它起作用有时不起作用...
任何建议,无法提出代码???
注意:我没有复杂的结构或组件,但实现简单。
问题是当我运行我的应用程序时,它运行良好。但是当我刷新它时,大多数时候我都低于味精。
选择器“ my-app”与任何元素都不匹配
但是奇怪的是,当我刷新我的应用程序很多时候它也可以工作。
因此,最终我的应用程序出现异常行为,无法弄清这一点。
有时它起作用有时不起作用...
任何建议,无法提出代码???
注意:我没有复杂的结构或组件,但实现简单。
Potentially unhandled rejection [2] The selector "micropuppy-app" did not match any elements
和FF中,'例外:选择器“ my-app”与任何元素都不匹配BaseException @ cdnjs.cloudflare.com/ajax/libs/angular.js/2.0.0-beta.7 / ... ... .. ... ... ..并继续'
Answers:
这是发生在我身上的原因,因为我正在代码中导入代码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>
main.js
打字稿文档的plunker演示中没有脚本。虽然我确实有错误。
window.onload = function(){ platformBrowserDynamic().bootstrapModule(AppModule); }
角4:我不得不改变 <app-root></app-root>
与 <my-app></my-app>
index.html文件中
angular-cli
创建app-root
引用似乎存在问题index.html
,而“ Tour of Heroes”教程入口点ts文件则引用my-app
。IMO两者应使用相同的命名约定,因为Angular团队一直建议将其angular-cli
作为创建项目的最佳方法。
要做的事情:
检查是否包含“ boostrap:”部分-如果没有添加:
bootstrap: [AppComponent]
//其中AppComponent是您的主要组件
检查它是否现在可以正常运行-转到AppComponent并检查选择器。它应与index.html中正文中的标签相同
因此index.html应包含以下内容:
<body>
<app-root>Loading...</app-root>
</body>
而不是<app-root>
您应该使用主AppComponent中的选择器
<body>
标签已修复它
使用Angular Universal时遇到相同的问题。但这是因为我BrowserModule
在main.node.ts中使用,解决方案是
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/,则可能会发现替换了boot-client.ts具有以下帮助(并避免了HMR重新加载页面时出现的许多可怕的控制台错误):
const bootApplication = () => { platform.bootstrapModule(AppModule); };
if (document.readyState === 'complete') {
window.onload = () => bootApplication();
location.reload();
} else {
document.addEventListener('DOMContentLoaded', bootApplication);
}
我将Angular 5.2应用程序更新为Angular 6.1,并遇到类似问题。在这种情况下,问题是index.html文件根本没有<body>
。相反,它包含在my-app
组件中。
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Example</title>
<base href="https://stackoverflow.com/">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="favicon.ico">
</head>
<my-app></my-app>
</html>
这曾经与Angular 5.2(以及更早的版本)一起使用,因为在生成的index.html中,脚本标记位于末尾。升级到6.1之后,脚本标签改为放置在文件的开头(因此,我假设因此在<my-app></my-app>
实际存在根元素。
解决的办法是<body>
进入index.html。(它最初放置在组件中是因为有人想使用来将条件类应用于body元素ngClass
。)
以上答案均不能解决我的问题。这是解决同类错误的方法。作为Bootstarp组件,您不应有多个组件。因此,Bootstrap阵列应仅包含一个组件。由于错误,我将4个组件放入了Bootstrap阵列中,我从那里删除了这4个组件并放入entryComponents数组中(如下面的代码)。这对我有所帮助。
@NgModule({
declarations: [
AppComponent,
SanackBarBodyComponent,
SuccessNavBarComponent,
AlertNavBarComponent,
NormalNavBarComponent
],
entryComponents:[
SanackBarBodyComponent,
SuccessNavBarComponent,
AlertNavBarComponent,
NormalNavBarComponent
],
imports: [
BrowserModule,
BrowserAnimationsModule
],
providers: [],
bootstrap: [AppComponent
]
})
export class AppModule { }
Django +角
我有一个自定义index.html,而不是由角度CLI生成的。
我遇到此错误是因为我将生成的脚本文件放置在该<head>
部分中,而不是在结束时</body>
标记(在<app-root></app-root>
标记之后)
my-app
组件的任何一部分。