次のような JSON があります:
.json
"type": [ {
"id": 2,
"secondid": "1",
"name": "f",
"positionX": 0,
"positionY": 0
}]
および次のサービス:
public updateposition(Model: typemodel): Observable<any> {
return this.http.post(this.apiEndPoint + '/type' + '/' + typemodel.id , typemodel);
}
および次の TS:
.ts
x: number;
y: number;
updateposition()
{
}
したがって、目標は、json オブジェクト「type」を更新することです。 HTMLのボタンをクリックすることで。 html部分は問題ありません。しかし、tsで宣言された2つの新しい位置xとyでjsonオブジェクトを更新する方法がわかりません。 updateposition()関数内で処理を行いたいと考えています。何か提案はありますか:)?
型が配列であるのはなぜですか?操作および更新する必要があるオブジェクトは type[0] のようです。配列型ではありません。 1 つの結果を含む JSON クエリが返され、最初の結果が取り出されなかったようです (常に 1 つの結果を返す一意のクエリであると仮定します)。
– ロビン・デ・シェッパー
2020 年 9 月 3 日 20:04
------------------------
コンポーネント内のサービスへの参照を取得するには、依存関係の挿入を使用し、それを使用して JSON オブジェクトを取得して保存する必要があります。次に、ボタンがクリックされたときに JS の他のオブジェクトと同様に更新し、API 呼び出しを行います。必ず結果をサブスクライブしてください。そうしないと、API 呼び出しが完了しません。
// ...
export class MyComponent {
public jsonObject: TypeModel = { ... };
public constructor(private service: Service) { }
// ...
public function updateposition() {
this.jsonObject[0].positionX = 52;
this.jsonObject[0].positionY = 42;
this.jsonObject = this.service.updateposition(this.jsonObject).subscribe(
result => {
console.log("The API call returned", result);
}
);
}
}
1
質問の文脈全体を完全に理解できなかったので、モデルに入力するデータがすでにあると思いましたか? jsonObject は、TypeModel 型の説明に従っている限り、何でも構いません (質問では、Model と typemodel を反転しているようです。そのため、何が何なのか混乱しています:)
– ロビン・デ・シェッパー
2020 年 9 月 4 日 10:16