Uncaught Error: Can't resolve all parameters for AppComponent: (?)
Uncaught Error: Can't resolve all parameters for AppComponent: (?)
在构造函数中添加表单生成器时。我一直收到错误。我已经在 app.module 中添加了 ReactiveFormsModule。
import { Component } from '@angular/core';
import { FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms';
@Component({
selector: 'app',
template: require('./app.component.pug'),
styles: [require('./app.component.scss')]
})
export class AppComponent {
private loginForm: FormGroup;
constructor(private fb: FormBuilder) {}
}
样本app.module.ts
import { ReactiveFormsModule } from '@angular/forms';
@NgModule({
imports: [BrowserModule, ReactiveFormsModule],
declarations: [AppComponent],
providers: [],
bootstrap: [AppComponent]
})
这里是错误:
这对我有用Stackblitz example。
虽然有些评论:
- 为什么需要 pug 文件作为模板?如果您使用的是 pug(和 pug-watch),html 文件也应该在那里。
- 为什么需要 css?只需简单地使用
styleUrls: [ './app.component.css' ]
.
- 您确定您的节点、npm 和 angular 版本是最新的并且兼容吗?
编辑:
如果删除 'require' 部分有帮助,试试这个:
@Component({
selector: 'app',
template: './app.component.html',
styles: ['./app.component.scss']
})
angular 中还没有本地 pug 支持,因此您应该依靠其他工具将您的页面转换为 html 文件。在 @Component 装饰器中,您应该尽量遵循官方 angular 文档。
就个人而言,我使用 Gulp js 同时启动我的开发应用程序和哈巴狗观察者。
这是我的 gulpfile:
const gulp = require('gulp');
const clean = require('gulp-clean');
const pug = require('gulp-pug');
const git = require('gulp-git');
const file = require('gulp-file');
const spawn = require('child_process').spawn;
const shell = require('gulp-shell');
const install = require('gulp-install');
const notify = require('gulp-notify');
// *********
// BUILD APP
// *********
gulp.task('npm-install', function () {
gulp.src(['./package.json'])
.pipe(install());
});
gulp.task('clean-dist', ['npm-install'], function () {
return gulp.src('./dist', {read: false})
.pipe(clean())
});
gulp.task('pug-build', function buildHTML() {
return gulp.src('./src/**/*.pug')
.pipe(pug({doctype: 'html', pretty: false}))
.on('error', notify.onError(function (error) {
return 'An error occurred while compiling pug.\nLook in the console for details.\n' + error;
}))
.pipe(gulp.dest('./src'))
});
gulp.task('ng-build', ['clean-dist', 'pug-build'], function (cb) {
spawn('npm', ['run', 'ngbuild'], {stdio: 'inherit'})
});
gulp.task('build', ['ng-build'], function () {
});
// ****************
// DEVELOPMENT MODE
// ****************
gulp.task('pug-watch', ['pug-build'], function (cb) {
gulp.watch('./src/**/*.pug', ['pug-build'])
});
gulp.task('ng-serve', function (cb) {
spawn('ng', ['serve'], {stdio: 'inherit'});
});
gulp.task('dev-start', ['pug-watch', 'ng-serve']);
(在 package.json 我有一个条目:"ngbuild": "ng build --aot --progress=false"
)
已将 emitDecoratorMetadata: true
添加到 tsconfig.json 文件
在构造函数中添加表单生成器时。我一直收到错误。我已经在 app.module 中添加了 ReactiveFormsModule。
import { Component } from '@angular/core';
import { FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms';
@Component({
selector: 'app',
template: require('./app.component.pug'),
styles: [require('./app.component.scss')]
})
export class AppComponent {
private loginForm: FormGroup;
constructor(private fb: FormBuilder) {}
}
样本app.module.ts
import { ReactiveFormsModule } from '@angular/forms';
@NgModule({
imports: [BrowserModule, ReactiveFormsModule],
declarations: [AppComponent],
providers: [],
bootstrap: [AppComponent]
})
这里是错误:
这对我有用Stackblitz example。
虽然有些评论:
- 为什么需要 pug 文件作为模板?如果您使用的是 pug(和 pug-watch),html 文件也应该在那里。
- 为什么需要 css?只需简单地使用
styleUrls: [ './app.component.css' ]
. - 您确定您的节点、npm 和 angular 版本是最新的并且兼容吗?
编辑: 如果删除 'require' 部分有帮助,试试这个:
@Component({
selector: 'app',
template: './app.component.html',
styles: ['./app.component.scss']
})
angular 中还没有本地 pug 支持,因此您应该依靠其他工具将您的页面转换为 html 文件。在 @Component 装饰器中,您应该尽量遵循官方 angular 文档。 就个人而言,我使用 Gulp js 同时启动我的开发应用程序和哈巴狗观察者。 这是我的 gulpfile:
const gulp = require('gulp');
const clean = require('gulp-clean');
const pug = require('gulp-pug');
const git = require('gulp-git');
const file = require('gulp-file');
const spawn = require('child_process').spawn;
const shell = require('gulp-shell');
const install = require('gulp-install');
const notify = require('gulp-notify');
// *********
// BUILD APP
// *********
gulp.task('npm-install', function () {
gulp.src(['./package.json'])
.pipe(install());
});
gulp.task('clean-dist', ['npm-install'], function () {
return gulp.src('./dist', {read: false})
.pipe(clean())
});
gulp.task('pug-build', function buildHTML() {
return gulp.src('./src/**/*.pug')
.pipe(pug({doctype: 'html', pretty: false}))
.on('error', notify.onError(function (error) {
return 'An error occurred while compiling pug.\nLook in the console for details.\n' + error;
}))
.pipe(gulp.dest('./src'))
});
gulp.task('ng-build', ['clean-dist', 'pug-build'], function (cb) {
spawn('npm', ['run', 'ngbuild'], {stdio: 'inherit'})
});
gulp.task('build', ['ng-build'], function () {
});
// ****************
// DEVELOPMENT MODE
// ****************
gulp.task('pug-watch', ['pug-build'], function (cb) {
gulp.watch('./src/**/*.pug', ['pug-build'])
});
gulp.task('ng-serve', function (cb) {
spawn('ng', ['serve'], {stdio: 'inherit'});
});
gulp.task('dev-start', ['pug-watch', 'ng-serve']);
(在 package.json 我有一个条目:"ngbuild": "ng build --aot --progress=false"
)
已将 emitDecoratorMetadata: true
添加到 tsconfig.json 文件