在使用 angular-cli 部署到github页面后出现此类错误:
错误:"无法解析e:(?)的所有参数。"
本地应用程序有效。 您建议采取哪些步骤来找到问题所在?
尝试使用angular-cli beta29 和 beta30 。
UPD :我已将路由器从应用程序中移除以进行测试。不是我只有一个猜测,它与DI有关。
UPD2(找到了地方):
问题在于覆盖RequestOptions
,所以:
export class RequestOptionsService extends RequestOptions {}
并提供者定义:
{ provide: RequestOptions, useClass: RequestOptionsService },
这对我来说仍然是一个问题。
RequestOptions
构造函数 - 错误。RequestOptions
构造函数 - 无错误RequestOptions
构造函数 - 错误这是我覆盖构造函数的方式:
constructor(options?: RequestOptionsArgs) {
super(options);
}
这里可能有什么问题?
UPD3(解决自己的案例):
问题的确存在RequestOptions
,所以你不应该这样做:
export class RequestOptionsService extends RequestOptions {}
但仅限:
export class RequestOptionsService extends BaseRequestOptions {}
答案 0 :(得分:2)
确保:
"emitDecoratorMetadata": true
tsconfig.js
@Injectable()
decorator 答案 1 :(得分:1)
官方的例子是:
class MyOptions extends BaseRequestOptions {
search: string = 'coreTeam=true';
}
bootstrap(App, [HTTP_PROVIDERS, {provide: RequestOptions, useClass: MyOptions}]);
事实上,export class RequestOptionsService extends RequestOptions {}
也应该完美无缺。可能是angular-cli特定问题(我可以在我的设置上执行此操作)。
如果您的服务具有非可选参数,那么@Injectable()
是必须的。此外,还必须提供参数(在您的情况下为RequestOptionsArgs
)或标记为@Optional()
。