我有一个Ionic / Angular应用程序,我刚刚更新到Ionic 3 / Angular 4.我有几个基类用于我的页面......
@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
参数。我使用它的所有内容都是用于某些日志记录,我只是将它传递给我实例化从这个派生的类。
例如super(userMessageService, logger, translate, 'MyPage');
有谁知道为什么这看起来不可能,而且我现在如何传递这样的参数(希望无需单独设置init方法)
提前感谢您的帮助!
答案 0 :(得分:6)
发现我的问题。我认为你需要基页面类@Injectable()
,例如..
@Injectable()
export abstract class BasePage {
constructor(protected name : string, messageProvider : MyServiceProvider) {
console.log("Baseclass calls " + messageProvider.getMessage());
}
}
当我删除它时,它仍然工作正常,错误消失了。我应该在原始问题中包含类def(我现在将添加)