我正在使用 ionic/angular 和 RXJS observables。
我正在尝试使用 Rxjs observables 重构我的代码,我有下一个代码:
ionViewWillEnter() {
if (this.platform.is('core') || this.platform.is('mobileweb')) {
this.lat = 37.3675506;
this.lng = -6.0452695;
this.printMap();
} else {
if (this.platform.is('android')) {
this.tryGeolocation();
} else if (this.platform.is('ios')) {
console.log("IOS")
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果用户从 android 移动设备访问我应该检查:isLocationAuthorized、isLocationEnabled() 以使用 getCurrentPosition() 获取当前位置,然后我必须在使用 Observables forkjoin 的地方打印 Map。
问题是检查方法返回承诺,我不知道如何链接这个流程。
tryGeolocation 是下一个:
async tryGeolocation() {
try {
if (await this.diagnostic.isLocationAuthorized()) {
if (await this.diagnostic.isLocationEnabled()) {
this.loading = this.loadingCtrl.create({
content: 'Localizando...',
dismissOnPageChange: true
});
this.loading.present();
const {coords} = await this.geolocation.getCurrentPosition();
this.lat …
Run Code Online (Sandbox Code Playgroud) 我想在编辑时仅从我的表单发送编辑/更改的值。
目前,我的表单发送所有表单值。
我正在使用接口:
export interface WorkExperience {
id?: number;
name_company:string;
date_start:string;
date_end:string;
}
export interface WorkExperienceUpdate {
id_work_experience: number;
experience: WorkExperience;
}
Run Code Online (Sandbox Code Playgroud)
我在我的 .ts 上这样做:
经验:工作经验;
this.experience = this.navParams.get('experience');
this.registrationForm = formBuilder.group({
company: [this.experience.name_company, Validators.required],
date_start: [this.formatDate(this.experience.date_start), Validators.required],
date_end: [this.experience.date_end ? this.formatDate(this.experience.date_end) : '']
});
Run Code Online (Sandbox Code Playgroud)
我的 html 是:
<form [formGroup]="registrationForm">
<ion-item>
<ion-label floating>Company</ion-label>
<ion-input type="text" formControlName="company"></ion-input>
</ion-item>
<ion-label floating>Start Date</ion-label>
<ion-datetime displayFormat="DD-MM-YYYY" formControlName="date_start"></ion-datetime>
</ion-item>
<ion-item>
<ion-label floating>End Date</ion-label>
<ion-datetime displayFormat="DD-MM-YYYY" formControlName="date_end"></ion-datetime>
</ion-item>
</form>
Run Code Online (Sandbox Code Playgroud)
我使用相同的表单进行添加和编辑,因此在编辑时我只需要发送不相同的元素,如下所示:
{ "id_eduative_experience": …