У меня есть таблица в БД с именем settings
.На бэкэнде у меня есть 2 конечные точки: получить настройки и выставить настройки.
Теперь я пытаюсь создать окно для редактирования этой таблицы в Angular.
Я создал Angular Service для получения значений:
findUserSettings(): Observable<UserSettings> {
const userServiceUrl = environment.backendUrl + '/users/settings';
const httpOptions = {
headers: new HttpHeaders({
'Content-Type': 'application/json',
'Accept': 'application/json'
})
};
return this.http.get<UserSettings>(userServiceUrl, httpOptions);
}
editUserSettings(userSettings: UserSettings): Observable<Object> {
const userUrl = environment.backendUrl + '/users/settings';
const httpOptions = {
headers: new HttpHeaders({
'Content-Type': 'application/json',
'Accept': 'application/json'
})
}
return this.http.put(userUrl, userSettings, httpOptions)
}
теперь в моем компоненте я пытаюсь получить данные из этих запросов такими способами:
findUserSettings(){
this.userService.findUserSettings().subscribe(
success => {
this.formData = success;
},
error => {
console.error(error);
},
() => {
}
);
}
getFirstDayOfWeek(){
this.userService.findUserSettings().subscribe(
success => {
this.formData.firstDayOfWeek = success.firstDayOfWeek;
},
error => {
console.error(error);
},
() => {
}
);
}
saveUserSettings(){
this.userService.editUserSettings(this.formData).subscribe(
data => {
this.formDataSaved.emit(true);
}
);
}
Я создал шаблон HTML с кнопкой для добавления,но я не знаю, как передать тело этого метода.
<select class="form-control" id="select">
<option value="1">My enum here.</option>
</select>
<button class="btn btn-default" (click)="saveUserSettings()">Save</button>
Это момент, когда я упускаю суть и не знаю, как двигаться дальше.Мне нужно передать тело методу, но вряд ли не знаю как.
Тело, которое ему требуется, выглядит так:
import { User } from "./user";
export class UserSettings {
id: number;
User: User;
firstDayOfWeek: Day;
}
День - перечисление, как показано ниже:
enum Day {
SUNDAY = 'su',
MONDAY = 'mo',
TUESDAY = 'tu',
WEDNESDAY = 'we',
THURSDAY = 'th',
FRIDAY = 'fr',
SATURDAY = 'sa',
}
Я бы хотел, чтобы пользователь выбрал firstDayOfWeek
только здесь, а затем нажмите кнопку, чтобы выполнить операцию ввода.Есть идеи, что мне теперь делать?
Как передать body в метод из html и как добавить перечисление String в select, чтобы можно было изменить эту запись в БД?