Angular2:无法阅读财产' post'未定义的

时间:2017-05-16 19:40:19

标签: angular angular2-routing angular2-services

下面是我的postData代码。我的所有请求都工作正常。当我发布帖子请求时,我得到了#34;无法读取属性' post'未定义"

@Injectable()
export class UserService {
    constructor(public _http: Http) { }

        postData(id: any) {
        let data = { "jql": id };
                    let body = JSON.stringify(data);
                    console.log(body);
                    return this._http.post('/api/Desk/Tickets/Search', body, { headers: this.getHeaders() })
                        .map((res: Response) => res.json());
    }
}

调用功能

  UserService.prototype.postData(id).subscribe(data=> {
          console.log('In response');
        });

1 个答案:

答案 0 :(得分:0)

虽然这有效:

UserService.prototype.postData(id).subscribe(data=> {
          console.log('In response');
        });

您在服务中打破了“this”引用并绕过了Angular依赖注入。您需要将服务注入其中,并使用:

_localServiceInstance.postData(...) instead of UserService.prototype...

<强>更新

@ AJT_82是对的,你的函数语法错误,并且弄乱了这个引用。它应该是:

legendItemClick: (e) => {
    console.log(this);
    return false;
}

这也是疯狂难以理解的。将事件定义为空对象:

series: {
    animation: false,
    point: {
        events: {}
    }
}

然后在选项声明或文件中的其他位置后,您只需分配事件:

this.options.plotOptions.series.point.events.legendItemClick = function(e) {
    console.log(this);
    return false;
};

这是一个工作版本: https://plnkr.co/edit/ZJQeGLbz3OkR3mkpqc7j?p=info