Angular 警告 "Warning:Can't resolve all parameters..."
Angular warning "Warning:Can't resolve all parameters..."
我有一个 Ionic / Angular 应用程序,我刚刚更新到 Ionic 3 / Angular 4. 我有几个用于我的页面的基础 classes ...
@Injectable()
export abstract class BasePage {
constructor(
userMessageService: UserMessageService,
logger: Logger,
translate: TranslateService,
derivedClassName: string,
) {
super(userMessageService, logger, translate, derivedClassName);
this.data = new Array<T>();
}
升级后,我现在收到以下警告..
Warning: Can't resolve all parameters for PageBase in D:/dev/myapp/src/pages/page-base.ts: ([object Object], [object Object], [object Object], ?). This will become an error in Angular v5.x
Warning: Can't resolve all parameters for CardPageBase in D:/dev/myapp/src/pages/card-page-base.ts: ([object Object], [object Object], [object Object], ?). This will become an error in Angular v5.x
所以它似乎不喜欢 string
论点。我只用它来做一些日志记录,我只是将它传递到我实例化从这个派生的 class 的地方..
例如super(userMessageService, logger, translate, 'MyPage');
有谁知道为什么这看起来不可能,还有我现在如何传递这样的参数(希望不需要单独的 setter 初始化方法)
在此先感谢您的帮助!
找到我的问题。我认为您需要在基础页面 class 上添加一个 @Injectable()
,例如..
@Injectable()
export abstract class BasePage {
constructor(protected name : string, messageProvider : MyServiceProvider) {
console.log("Baseclass calls " + messageProvider.getMessage());
}
}
当我删除它时,一切仍然正常,错误也消失了。我应该在原始问题中包含 class def(我现在将添加)
我有一个 Ionic / Angular 应用程序,我刚刚更新到 Ionic 3 / Angular 4. 我有几个用于我的页面的基础 classes ...
@Injectable()
export abstract class BasePage {
constructor(
userMessageService: UserMessageService,
logger: Logger,
translate: TranslateService,
derivedClassName: string,
) {
super(userMessageService, logger, translate, derivedClassName);
this.data = new Array<T>();
}
升级后,我现在收到以下警告..
Warning: Can't resolve all parameters for PageBase in D:/dev/myapp/src/pages/page-base.ts: ([object Object], [object Object], [object Object], ?). This will become an error in Angular v5.x
Warning: Can't resolve all parameters for CardPageBase in D:/dev/myapp/src/pages/card-page-base.ts: ([object Object], [object Object], [object Object], ?). This will become an error in Angular v5.x
所以它似乎不喜欢 string
论点。我只用它来做一些日志记录,我只是将它传递到我实例化从这个派生的 class 的地方..
例如super(userMessageService, logger, translate, 'MyPage');
有谁知道为什么这看起来不可能,还有我现在如何传递这样的参数(希望不需要单独的 setter 初始化方法)
在此先感谢您的帮助!
找到我的问题。我认为您需要在基础页面 class 上添加一个 @Injectable()
,例如..
@Injectable()
export abstract class BasePage {
constructor(protected name : string, messageProvider : MyServiceProvider) {
console.log("Baseclass calls " + messageProvider.getMessage());
}
}
当我删除它时,一切仍然正常,错误也消失了。我应该在原始问题中包含 class def(我现在将添加)