@angular/http method http.put()
を使用してモデルを更新することに問題があります。角4はネストされたフィールドを更新します
問題は、ポジションを更新できないことです。私は正常に他のフィールドを更新することができ、POSTで作成するときに任意の位置を設定することができます。
public interface EmployeeProjection {
Long getId();
String getName();
String getEmail();
String getPhone();
Date getBirthDay();
@Value("#{target.position.name}")
String getPosition();
}
と位置クラス:
public class Position {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
Long id;
String name;
}
私の角度のバージョンは私のモデルは
public class Employee {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
Long id;
String name;
String email;
String phone;
Date birthDay;
@JsonBackReference
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "position_id")
Position position;
}
プロジェクションのように見えるJavaで "^ 4.3.3"
です
角形テンプレートEポジション:コンポーネントで
<md-select mdInput placeholder="Position"
[(ngModel)]="newEmployee.position">
<md-option *ngFor="let position of positions | async" [value]="position.name">{{ position.name }}
</md-option>
</md-select>
私の更新方法:
update() {
let positionName = this.employee.position;
this.positionService.findByName(positionName).subscribe(position => {
this.employee.position = position._links.self.href;
this.employeeService.update(this.employee);
this.employee.position = positionName;
this.employeeService.localStorageService.set('employee', this.employee);
});
}
とサービスで:クロム要求で
update(employee: Employee) {
this.http.put(employee._links.self.href, employee)
.map((resp: Response) => resp.json())
.subscribe(() => {
this.getAll();
});
return employee;
}
:
{
"name": "Nikolai Morgan",
"id": 1,
"position": "http://localhost:9080/api/positions/5",
"birthDay": "1986-07-01",
"email": "[email protected]",
"phone": "+380840713229",
"_links": {
"self": {
"href": "http://localhost:9080/api/employees/1"
},
"employee": {
"href": "http://localhost:9080/api/employees/1{?projection}",
"templated": true
},
"position": {
"href": "http://localhost:9080/api/employees/1/position"
}
}
}
しかし、応答してプレビューではありませんフィールドを含む位置:
{
"id" : 1,
"name" : "Nikolai Morgan",
"email" : "[email protected]",
"phone" : "+380840713229",
"birthDay" : "1986-07-01",
"_links" : {
"self" : {
"href" : "http://localhost:9080/api/employees/1"
},
"employee" : {
"href" : "http://localhost:9080/api/employees/1{?projection}",
"templated" : true
},
"position" : {
"href" : "http://localhost:9080/api/employees/1/position"
}
}
}
ので、ハムレットの質問は何ですか? '? ;) – Cepr0
モデルのネストされたフィールドの値を更新する方法は? – MolecularMan
私の答えを参照してください... – Cepr0