gpt4 book ai didi

javascript - 我的 "this.router.navigate"在我的 Angular 2 应用程序中没有触发

转载 作者:行者123 更新时间:2023-12-03 04:53:07 25 4
gpt4 key购买 nike

我有一个函数,可以向 API 发出发布请求,并获取新创建文档的对象。我在此函数调用中成功从 API 获取数据,但是当我获取一个新对象并将正确的“_id”信息记录到控制台时,我的“this.router.navigate(['/record', this.router.navigate(['/record', this. _id])"未触发。我认为我应该能够像我一样将其附加到该函数的末尾,以便在返回数据时以编程方式处理导航。但这不起作用。当该功能被触发时,应用程序根本不会导航。我在这里缺少什么?

createRecord() {
this.recordsService.createRecord().subscribe(
data => {
// refresh the list
console.log(data);
return true;
},
error => {
console.error("Error creating record...");
return Observable.throw(error);
}
);
console.log('createRecord function initiated...');
this.router.navigate(['/record', this._id]);
}

我的服务如下所示:

    createRecord() {
const headers = new Headers({ 'Content-Type': 'application/json' });
const options = new RequestOptions({ headers: this.headers });
const body = JSON.stringify({deleted: true});
return this._http.post
('https://api.somesite.com/v0/records?apikey=someapikey',
body, options).map((res: Response) => res.json());
}

最佳答案

实际上,当你成功获取数据时(在成功回调中),你应该调用 router.navigate

createRecord() {
this.recordsService.createRecord().subscribe(
data => {
// refresh the list
this.router.navigate(['/record', data._id]);
},
error => {
console.error("Error creating record...");
return Observable.throw(error);
}
);
}

关于javascript - 我的 "this.router.navigate"在我的 Angular 2 应用程序中没有触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42564612/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com