gpt4 book ai didi

Angular 6 - 无法解析 AppComponent 的所有参数

转载 作者:太空狗 更新时间:2023-10-29 17:05:52 25 4
gpt4 key购买 nike

我正在尝试使用 Angular 6 构建应用程序,但我仍在设置所有内容。但是我的应用程序中的依赖注入(inject)似乎有问题。

它无法解析任何构造函数参数。它们都会导致 Uncaught Error: Can't resolve all parameters for AppComponent: (?).。即使是定制服务也会导致相同的错误。

Versions (省略了对此没有任何影响的依赖)

 "dependencies": {
"@angular/common": "6.0.5",
"@angular/compiler": "6.0.5",
"@angular/core": "6.0.5",
"@angular/forms": "6.0.5",
"@angular/http": "6.0.5",
"@angular/platform-browser": "6.0.5",
"@angular/platform-browser-dynamic": "6.0.5",
"@angular/router": "6.0.5",
"core-js": "2.5.7",
"reflect-metadata": "0.1.12",
"rxjs": "6.2.1",
"zone.js": "0.8.26"
},
"devDependencies": {
"@angular/compiler-cli": "6.0.5",
"@ngtools/webpack": "6.0.8",
"angular2-template-loader": "0.6.2",
"awesome-typescript-loader": "5.1.0",
"typescript": "2.7.2",
"webpack": "4.12.0",
"webpack-cli": "3.0.8",
"webpack-dev-server": "3.1.4",
}

app.module.ts

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

TestService.ts

import {Injectable} from "@angular/core";

@Injectable({
providedIn: 'root'
})
export class TestService {

constructor() {
console.warn("It works!");
}

public sayHello(): string {
return "hello world!";
}
}

App.component.ts

import {Component} from '@angular/core';
import {TestService} from "./TestService";

@Component({
selector: 'sh-home',
styleUrls: ['./home.scss'],
templateUrl: './home.html'
})
export class HomeComponent {

constructor(testService: TestService) {
testService.sayHello();
}
}

TestService 的注入(inject)在这种情况下给出了错误


Main.ts

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

import {AppModule} from './app/app.module';
import './assets/scss/styles.global.scss'; // Import the global scss files

// Polyfills
import './Polyfills';

if (process.env.NODE_ENV === 'production') {
enableProdMode();
}

platformBrowserDynamic().bootstrapModule(AppModule);

Polyfills.ts

/** IE9, IE10 and IE11 requires all of the following polyfills. **/
import 'core-js/es6/symbol';
import 'core-js/es6/object';
import 'core-js/es6/function';
import 'core-js/es6/parse-int';
import 'core-js/es6/parse-float';
import 'core-js/es6/number';
import 'core-js/es6/math';
import 'core-js/es6/string';
import 'core-js/es6/date';
import 'core-js/es6/array';
import 'core-js/es6/regexp';
import 'core-js/es6/map';
import 'core-js/es6/weak-map';
import 'core-js/es6/set';

/** IE10 and IE11 requires the following for NgClass support on SVG elements */
import 'classlist.js'; // Run `npm install --save classlist.js`.

/** IE10 and IE11 requires the following for the Reflect API. */
import 'core-js/es6/reflect';


/** Evergreen browsers require these. **/
// Used for reflect-metadata in JIT. If you use AOT (and only Angular decorators), you can remove.
import 'core-js/es7/reflect';

/***************************************************************************************************
* Zone JS is required by default for Angular itself.
*/
import 'zone.js/dist/zone'; // Included with Angular CLI.

我没有使用 CLI,而是使用自定义启动器。我包含了所有与 Angular-CLI 相同的 polyfill,所以我没有遗漏任何东西。

有没有人看到我做错了什么?


更新

我简化了测试用例并注意到它不是翻译模块。即使我创建了一个简单的服务,我也不能使用依赖注入(inject)。将服务添加到 providers 列表也不起作用(而且也没有必要,因为我使用的是 Angular 6 'provideIn: root')。

最佳答案

确保在 polyfill 中有以下导入:

import 'core-js/es7/reflect';

关于Angular 6 - 无法解析 AppComponent 的所有参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50965794/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com