【发布时间】:2018-11-17 10:01:39
【问题描述】:
我在 DB 中有一个名为 settings 的表。
在后端,我有 2 个端点:获取设置和放置设置。
现在我尝试创建窗口以在 Angular 中编辑此表。
我创建了 Angular 服务来获取值:
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 以便能够更改此 db 记录?
【问题讨论】:
标签: html angular typescript frontend