Ошибка при рендеринге страницы с помощью Angular 5 - PullRequest
0 голосов
/ 08 июня 2018

Я делаю проект с помощью Angular 5. Я вызываю API в нем.

Я получаю следующую ошибку:

Error: StaticInjectorError(AppModule)[Router -> ApplicationRef]: 
  StaticInjectorError(Platform: core)[Router -> ApplicationRef]: 
    NullInjectorError: No provider for ApplicationRef!
    at NullInjector.push../node_modules/@angular/core/fesm5/core.js.NullInjector.get (core.js:951)
    at resolveToken (core.js:1195)
    at tryResolveToken (core.js:1140)
    at StaticInjector.push../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (core.js:1035)
    at resolveToken (core.js:1195)
    at tryResolveToken (core.js:1140)
    at StaticInjector.push../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (core.js:1035)
    at resolveNgModuleDep (core.js:8071)
    at _callFactory (core.js:8143)
    at _createProviderInstance$1 (core.js:8091)

Мой Package.json:

{
  "name": "demo-app",
  "version": "0.0.0",
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
  },
  "private": true,
  "dependencies": {
    "@angular/animations": "^6.0.3",
    "@angular/common": "^6.0.3",
    "@angular/compiler": "^6.0.3",
    "@angular/core": "^6.0.3",
    "@angular/forms": "^6.0.3",
    "@angular/http": "^6.0.3",
    "@angular/platform-browser": "^6.0.3",
    "@angular/platform-browser-dynamic": "^6.0.3",
    "@angular/router": "^6.0.3",
    "core-js": "^2.5.4",
    "rxjs": "^6.0.0",
    "zone.js": "^0.8.26"
  },
  "devDependencies": {
    "@angular/compiler-cli": "^6.0.3",
    "@angular-devkit/build-angular": "~0.6.8",
    "typescript": "~2.7.2",
    "@angular/cli": "~6.0.8",
    "@angular/language-service": "^6.0.3",
    "@types/jasmine": "~2.8.6",
    "@types/jasminewd2": "~2.0.3",
    "@types/node": "~8.9.4",
    "codelyzer": "~4.2.1",
    "jasmine-core": "~2.99.1",
    "jasmine-spec-reporter": "~4.2.1",
    "karma": "~1.7.1",
    "karma-chrome-launcher": "~2.2.0",
    "karma-coverage-istanbul-reporter": "~2.0.0",
    "karma-jasmine": "~1.1.1",
    "karma-jasmine-html-reporter": "^0.2.2",
    "protractor": "~5.3.0",
    "ts-node": "~5.0.1",
    "tslint": "~5.9.1"
  }
}

У меня app.module.ts следующим образом, в котором яуказание маршрута «выборка» и вызов соответствующего контроллера.

import { NgModule } from '@angular/core';
import { FetchApiComponent } from './fetch-api/fetch-api.component';
import { Routes, RouterModule } from '@angular/router';

const routes: Routes = [
{ path: 'fetch', component: FetchApiComponent },

];

@NgModule({
  declarations: [

    FetchApiComponent
  ],
  imports: [

    RouterModule.forRoot(routes)
  ],
exports: [
RouterModule
],
  providers: [],
  bootstrap: []
})
export class AppModule { }

Файл main.ts следующий

import { enableProdMode } from '@angular/core';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';

import { AppModule } from './app/app.module';
import { environment } from './environments/environment';

if (environment.production) {
  enableProdMode();
}

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

Он показывает, что ошибка вызвана файлом main.ts из-за следующего кода.

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

Скриншот ошибки:

enter image description here

1 Ответ

0 голосов
/ 08 июня 2018

Чтобы получить ожидаемый результат без ошибок, импортируйте BrowserModule

import { NgModule } from '@angular/core';
import { FetchApiComponent } from './fetch-api/fetch-api.component';
import { Routes, RouterModule } from '@angular/router';
import { BrowserModule } from '@angular/platform-browser';

const routes: Routes = [
{ path: 'fetch', component: FetchApiComponent },

];

@NgModule({
  declarations: [

    FetchApiComponent
  ],
  imports: [
    BrowserModule, 
    RouterModule.forRoot(routes)
  ],
exports: [
RouterModule
],
  providers: [],
  bootstrap: []
})
export class AppModule { }

образец кода для справки - https://stackblitz.com/edit/angular-2xbbzj?file=src/app/app.module.ts

Примечание : УдалитьBrowserModule из импорта, чтобы увидеть ту же ошибку

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...