angular 2 app-root在运行时未加载

Posted

技术标签:

【中文标题】angular 2 app-root在运行时未加载【英文标题】:angular 2 app-root not loading when running 【发布时间】:2019-12-08 08:15:59 【问题描述】:

我按照这里的说明进行操作:https://angular.io/cli

我在没有路由选项的情况下执行了以下几行:

ng new test-test-projectthree
ng serve

我想从 app.component.html 中查看所有内容?但是,我只看到一个空白页面。索引页面已显示,但未加载根组件(我没有从根组件 html 文件中看到任何内容)。

我在 Red Hat linux 7 上运行一切,并使用 mobaXterm 连接到它。

我正在 firefox ESR 38.6.1 上对其进行测试,并且在 firefox 控制台中没有看到任何错误。

index.html

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>TestProjectthree</title>
  <base href="/">

  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="icon" type="image/x-icon" href="favicon.ico">
</head>
<body>
  <app-root></app-root>
</body>
</html>

main.ts

import  platformBrowserDynamic  from '@angular/platform-browser-dynamic';

import  AppModule  from './app/app.module';


platformBrowserDynamic().bootstrapModule(AppModule)
  .catch(err => console.error(err));

app.component.ts

 import  Component  from '@angular/core';

    @Component(
      selector: 'app-root',
      templateUrl: './app.component.html',
      styleUrls: ['./app.component.css']
    )
    export class AppComponent 
      title = 'test-projectthree';
    

app.module.ts

import  BrowserModule  from '@angular/platform-browser';
import  NgModule  from '@angular/core';

import  AppComponent  from './app.component';

@NgModule(
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule, 
  ],
  providers: [],
  bootstrap: [AppComponent]
)
export class AppModule  

app.component.html

<!--The content below is only a placeholder and can be replaced.-->
<div style="text-align:center">
  <h1>
    Welcome to dz!
  </h1>
</div>

app.component.spec.ts

import  TestBed, async  from '@angular/core/testing';
import  AppComponent  from './app.component';

describe('AppComponent', () => 
  beforeEach(async(() => 
    TestBed.configureTestingModule(
      declarations: [
        AppComponent
      ],
    ).compileComponents();
  ));

  it('should create the app', () => 
    const fixture = TestBed.createComponent(AppComponent);
    const app = fixture.debugElement.componentInstance;
    expect(app).toBeTruthy();
  );

  it(`should have as title 'test-projectthree'`, () => 
    const fixture = TestBed.createComponent(AppComponent);
    const app = fixture.debugElement.componentInstance;
    expect(app.title).toEqual('test-projectthree');
  );

  it('should render title in a h1 tag', () => 
    const fixture = TestBed.createComponent(AppComponent);
    fixture.detectChanges();
    const compiled = fixture.debugElement.nativeElement;
    expect(compiled.querySelector('h1').textContent).toContain('Welcome to test-projectthree!');
  );
);

控制台输出:

ng serve
 10% building 3/3 modules 0 activeℹ 「wds」: Project is running at http://localhost:4200/webpack-dev-server/
ℹ 「wds」: webpack output is served from /
ℹ 「wds」: 404s will fallback to //index.html                                                                                                                                                            chunk main main.js, main.js.map (main) 7.28 kB [initial] [rendered]
chunk polyfills polyfills.js, polyfills.js.map (polyfills) 251 kB [initial] [rendered]
chunk runtime runtime.js, runtime.js.map (runtime) 6.09 kB [entry] [rendered]
chunk styles styles.js, styles.js.map (styles) 16.3 kB [initial] [rendered]
chunk vendor vendor.js, vendor.js.map (vendor) 3.81 MB [initial] [rendered]
Date: 2019-07-30T21:01:50.970Z - Hash: b54b63db5003df7b9b19 - Time: 15924ms
** Angular Live Development Server is listening on localhost:4200, open your browser on http://localhost:4200/ **
ℹ 「wdm」: Compiled successfully.
SystemMessageCache: initATTENTION: default value of option force_s3tc_enable overridden by environment.
1565203202194   addons.repository       WARN    Search failed when repopulating cache
1565203202731   addons.update-checker   WARN    Update manifest was not valid XML

关于我做错了什么有什么建议吗? 当我使用 ng serve 命令运行 Angular 时,我没有看到任何错误(“重新填充缓存时搜索失败”除外,但我认为这不是问题),并且在 firefox 控制台中没有看到任何错误.由于我也是 angular 2 的新手,所以我不确定我现在能做些什么来解决这个问题。

【问题讨论】:

没有错误.....打开 localhost:4200 你应该看到输出......你看到了什么? 如果我向 index.html 添加一些文本,它确实会显示出来,所以我认为 localhost:4200 正在工作。但是,app.component.html 中没有显示任何内容。 你有自定义的css吗?浏览器控制台错误日志中有什么内容? 您使用的是什么浏览器和浏览器版本? 您可以在其他浏览器中尝试吗?制作一个 stackblitz 演示项目并将所有代码放入其中进行测试。如果它有效,应该有一些来自你的环境的东西。请分享演示链接 【参考方案1】:

关于您的评论,您的系统上似乎有一些与 Angular 冲突的 localhost 配置,因此您必须定义另一个有效的主机来运行 Angular 的开发服务器。

配置ng s的一些有用参数(来自Official Angular Guide):

--host=host:要监听的主机(默认:localhost

--open=true|false:在默认浏览器中打开url(默认:false

--port:监听端口(默认:4200

【讨论】:

这个答案是有效的,修复了我在启动 Angular 应用程序时面临的相同问题【参考方案2】:

我发现这个链接非常有用:

通过将 HttpClientModule 添加到 src/app/app.module.ts 中的导入,我的问题解决了

https://malcoded.com/posts/why-angular-not-works/

【讨论】:

以上是关于angular 2 app-root在运行时未加载的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Angular 2 不加载默认的应用程序根组件?

更新到角度6后找不到app-root

使用 Express 时未加载 Javascript (Angular)

第一次加载时未从 url 查询参数初始化 Angular 7 变量

Angular Material Stepper 在首次加载时未定义

在angular2中动态加载HTML模板