Angular 在提供程序中添加工厂时发生ng生成错误
我在学校做一个项目。我创建了一个基本的HttpFactory,并将其添加到app.module.ts中的提供程序中,但在运行ng build时,出现以下错误: 无法读取未定义的属性“提供”时出错 谢谢 导入app.module.ts、Http、HttpFactory、XHRBackend和RequestOptions中的代码:Angular 在提供程序中添加工厂时发生ng生成错误,angular,http,build,factory,angular-http,Angular,Http,Build,Factory,Angular Http,我在学校做一个项目。我创建了一个基本的HttpFactory,并将其添加到app.module.ts中的提供程序中,但在运行ng build时,出现以下错误: 无法读取未定义的属性“提供”时出错 谢谢 导入app.module.ts、Http、HttpFactory、XHRBackend和RequestOptions中的代码: providers: [ AppSettings, ProductService, CommandService, BetService,
providers: [
AppSettings,
ProductService,
CommandService,
BetService,
AccountService,
MasterService,
ProductCategoryService,
MasterService,
UserWalletService,
TransactionService,
Window,
{
provide: Http,
useFactory: HttpFactory,
deps: [XHRBackend, RequestOptions]
}
],
bootstrap: [AppComponent]
package.json:
{
"name": "web",
"version": "0.0.0",
"license": "MIT",
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
},
"private": true,
"dependencies": {
"@angular/animations": "^4.2.3",
"@angular/common": "^4.2.3",
"@angular/compiler": "^4.2.3",
"@angular/core": "^4.2.3",
"@angular/forms": "^4.2.3",
"@angular/http": "^4.2.3",
"@angular/material": "^2.0.0-beta.7",
"@angular/platform-browser": "^4.2.3",
"@angular/platform-browser-dynamic": "^4.2.3",
"@angular/router": "^4.2.3",
"core-js": "^2.4.1",
"rxjs": "^5.4.1",
"systemjs": "^0.20.14",
"zone.js": "^0.8.12"
},
"devDependencies": {
"@angular/cli": "1.1.3",
"@angular/compiler-cli": "^4.0.0",
"@angular/language-service": "^4.0.0",
"@types/jasmine": "2.5.45",
"@types/node": "~6.0.60",
"codelyzer": "~3.0.1",
"jasmine-core": "~2.6.2",
"jasmine-spec-reporter": "~4.1.0",
"karma": "~1.7.0",
"karma-chrome-launcher": "~2.1.1",
"karma-cli": "~1.0.1",
"karma-coverage-istanbul-reporter": "^1.2.1",
"karma-jasmine": "~1.1.0",
"karma-jasmine-html-reporter": "^0.2.2",
"protractor": "~5.1.2",
"ts-node": "~3.0.4",
"tslint": "~5.3.2",
"typescript": "~2.3.3"
}
}
我相信您拼错了
HttpFactory
。它是httpFactory
,带有小写字母h。所以它不能读取未定义的属性
Window,
{
provide: Http,
useFactory: httpFactory,
deps: [XHRBackend, RequestOptions]
}
我将其命名为HttpFactory,导入工作正常:从“/factories/HttpFactory.factory”导入{HttpFactory}:/好的。。。如果您正在创建自己的工厂,请确保实现了工厂接口,它将帮助您排除错误。如果附加factory源代码,就很容易看出哪里出了问题……事实上,我发现,这是“窗口”提供程序,我在处理visual studio项目之前,现在正在处理一个使用cli编译的项目,我必须删除它(我还没有替换它)。谢谢