我尝试使用promises将我的应用程序连接到Api。 更新方法工作正常,但更新方法确实无效。 这是:
[{
key: 'A',
items: [{name: 'a item'}]
},
{
key: 'B',
items: [{name: 'b item'}, {name: 'another b item'}, {name: 'more b items'}, {name: 'even more b items'}]
}]
在更新中它说: "提供的参数与呼叫目标的任何签名都不匹配"
为了进一步的帮助我给组件:
import { Injectable } from '@angular/core';
import { Http, Response } from '@angular/http';
import 'rxjs/add/operator/toPromise';
@Injectable()
export class Croissants {
text: string;
ownerId: number[];
startDate: Date;
endDate: Date;
}
export class Personnes {
text: string;
id: number;
color: string;
}
export class EventService {
constructor(private http: Http) {}
getCroissants() {
return this.http.get('http://localhost:8080/v0/croissants')
.toPromise()
.then(res => <any[]> res.json().data)
.then(data => { return data; });
}
updateCroissants(ownerId, startDate, endDate, text) {
return this.http.put('http://localhost:8080/v0/croissant' + ownerId + startDate + endDate + text)
.toPromise()
.then(res => <any[]> res.json().data)
.then(data => { return data; });
}
deleteCroissants(ownerId) {
return this.http.delete('http://localhost:8080/v0/croissant' + ownerId)
.toPromise()
.then(res => <any[]> res.json().data)
.then(data => { return data; });
}
getPersonnes() {
return this.http.get('http://localhost:8080/v0/persons')
.toPromise()
.then(res => <any[]> res.json().data)
.then(data => { return data; });
}
}
如果你想留意它,我的所有代码都可以在我的github上找到:
非常感谢你的帮助
答案 0 :(得分:1)
updateCroissants
方法需要从您调用它的地方获取id参数。
所以看起来应该是这样的:
//service
updateCroissants(id) {
return this.http.put('http://localhost:8080/v0/croissants/' + id)
.toPromise()
.then(res => <any[]> res.json().data)
.then(data => { return data; });
}
当你调用这个函数时:
//component
this.service.updateCroissants("42").then((res)=> console.log(res));