角度警告“警告:无法解析所有参数......”

时间:2017-05-14 08:37:03

标签: angular ionic2 ionic3

我有一个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方法)

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:6)

发现我的问题。我认为你需要基页面类@Injectable(),例如..

    @Injectable()
    export abstract class BasePage {
      constructor(protected name : string, messageProvider : MyServiceProvider) {
        console.log("Baseclass calls " + messageProvider.getMessage());
      }
    }

当我删除它时,它仍然工作正常,错误消失了。我应该在原始问题中包含类def(我现在将添加)