【问题标题】:Angular2 RC1 error "Supplied parameters do not match any signature of call target"Angular2 RC1 错误“提供的参数与调用目标的任何签名都不匹配”
【发布时间】:2016-11-27 21:51:09
【问题描述】:

我对 angular 2 rc1 http get 方法有疑问:

提供的参数与调用目标的任何签名都不匹配。

public getMessages() {
    return this.http.get('url').map((res:Response) => res.json());
}

然后:

export class BaMsgCenter {
  public messages;
  public data_error: Boolean = false;
  constructor(private _baMsgCenterService:BaMsgCenterService) {
      this.messages = this._baMsgCenterService.getMessages().subscribe(
        (messages: Array<any>) => { 
          debugger;
          let result:Array<Message> = [];
          if (messages) {
            messages.forEach((message) => {
              result.push(
                 new Message(message[0], 
                          message[1],
                          message[2],
                          message[3],
                          message[4])
                 );
            });
          }
        return messages; 
        },
      err => { this.data_error = true}
        );
      }
}

消息类:

export class Message {
    id: number;
    message: string;
    send_date: string;
    status: number;
    from: string;
}

错误是:new Message(message[0], (...)。 可能这与承诺有关,但我不知道如何解决它。 我想将 json 数组解析为对象,例如:

[[1,"Title",1468669921000,0,"Siva"],[2,"Title",1468669934000,0,"Siva2"]]

有什么想法吗?

谢谢!

【问题讨论】:

    标签: http angular promise


    【解决方案1】:

    您的Message 类没有构造函数。你应该写:

    export class Message {
       constructor(public id: number,
           public message: string,
           public send_date: string,
           public status: number,
           public from: string) {}
    }
    

    【讨论】:

      猜你喜欢
      • 2017-08-24
      • 2017-05-08
      • 2017-11-14
      • 2016-12-07
      • 2018-01-08
      • 2017-04-26
      • 2016-02-15
      • 2016-06-09
      • 2016-11-14
      相关资源
      最近更新 更多