2016-04-11 17 views
0

私は自分のクライアントサーバーアプリケーションを構築しようとしています。私はシンプルなhtmlスケルトンを設定し、演習のメソッドのいくつかを使ってサーバーにアイテムを追加しました。これまでのデータベースのものはありません。次の論理的なステップは、/編集項目を削除することになるアイテムの編集や削除はどうすればできますか?

addItem(name:string, price:number, successCallback, errorCallback) { 
     this.http.post('/item', JSON.stringify({name: name, price: price}), {headers: this.headers}).subscribe((response) => { 
     this.items.push(new Item(+response.text(), name, price)); 
     successCallback(); 
     }, (response) => { 
     errorCallback(); 
     }); 
    } 

が、例はこれをカバーしていない、そしてそれはおそらくかなり単純だすべてかかわらず、私はできません:私は、サービスクラスから、項目を追加するため、この方法を得ましたそれを見つけ出すか、適合する別の例を見つけてください。私はここの誰かが私を助けることを望んでいた。それは主に私が苦労しているHTTPのものです..私は思います。

答えて

0

あなたはこのために次のメソッドを実装できます。

updateItem(id:string, obj:any) { 
    this.http.put(`/item/${id}`, JSON.stringify(obj), { 
    headers: this.headers 
    }).subscribe((response) => { 
    var itemIndexToUpdate = this.items.find((item => item.id===id)); 
    this.items[itemIndexToUpdate] = obj; 
    }, (response) => { 
    (...) 
    }); 
} 

deleteItem(id:string) { 
    this.http.delete(`/item/${id}`, { 
    headers: this.headers 
    }).subscribe((response) => { 
    var itemIndexToRemove = this.items.findIndex((item => item.id===id)); 
    if (itemIndexToRemove != -1) { 
     this.items.splice(itemIndexToRemove, 1); 
    } 
    }, (response) => { 
    (...) 
    }); 
} 

は、そうでなければ、私が観測むしろaddItem方法しかし、レバレッジへのコールバックを利用していないでしょう。

0

はこれらを試してみてください -

EditRequest(url,data) { 
     this.headers = new Headers(); 
     this.headers.append("Content-Type", 'application/json'); 
     this.headers.append("Authorization", 'Bearer ' + localStorage.getItem('id_token')) 

     this.requestoptions = new RequestOptions({ 
      method: RequestMethod.Put, 
      url: url, 
      headers: this.headers, 
      body: JSON.stringify(data) 
     }) 

     return this.http.request(new Request(this.requestoptions)) 
      .map((res: Response) => { 
       if (res) { 
        return [{ status: res.status, json: res.json() }] 
       } 
      }); 
    } 

DeleteRequest(url,data) { 
    this.headers = new Headers(); 
    this.headers.append("Content-Type", 'application/json'); 
    this.headers.append("Authorization", 'Bearer ' + localStorage.getItem('id_token')) 

    this.requestoptions = new RequestOptions({ 
     method: RequestMethod.Delete, 
     url: url, 
     headers: this.headers, 
     body: JSON.stringify(data) 
    }) 

    return this.http.request(new Request(this.requestoptions)) 
     .map((res: Response) => { 
      if (res) { 
       return [{ status: res.status, json: res.json() }] 
      } 
     }); 
} 

、あなたが必要に従ってたい場所これらをサブスクライブより。

関連する問題