如何解决带有离子选择选项的离子变化语言
我使用ion-select-option实现语言切换以传递值并更改语言文件 这是html代码
<ion-item>
<ion-label>Language </ion-label>
<ion-select placeholder="Select One" [(ngModel)]="lang" (ionChange)="switchLanguage()" interface="action-sheet">
<ion-select-option value="ar" selected="true">Arabic</ion-select-option>
<ion-select-option value="en">English</ion-select-option>
</ion-select>
</ion-item>
和ts代码
import { Component } from '@angular/core';
import { Platform } from '@ionic/angular';
import { SplashScreen } from '@ionic-native/splash-screen/ngx';
import { TranslateService } from '@ngx-translate/core';
@Component({
selector: 'app-root',templateUrl: 'app.component.html',styleUrls: ['app.component.scss']
})
export class AppComponent {
lang: any;
constructor(
private platform: Platform,private splashScreen: SplashScreen,public translate: TranslateService
) {
this.initializeApp();
this.lang = 'ar';
this.translate.setDefaultLang('ar');
this.translate.use('ar');
}
initializeApp() {
this.platform.ready().then(() => {
this.splashScreen.hide();
});
}
switchLanguage() {
this.translate.use(this.lang);
console.log(this.lang);
}
}
控制台始终返回“ ar” 知道问题在哪里吗?
解决方法
我通过将this.lang
替换为事件来解决了这个问题
ts
switchLanguage($event) {
this.translate.use($event.target.value);
console.log($event.target.value);
}
html
<ion-item>
<ion-label>Language </ion-label>
<ion-select placeholder="Select One" [(ngModel)]="lang" (ionChange)="switchLanguage($event)" interface="action-sheet">
<ion-select-option value="ar">Arabic</ion-select-option>
<ion-select-option value="en">English</ion-select-option>
</ion-select>
</ion-item>
,
<ion-select placeholder="Select Language"
[(ngModel)]="loginCredentials.language"
(ngModelChange)="changeLanguage(loginCredentials.language)">
<ion-select-option value="0">Select Language</ion-select-option>
<ion-select-option value="ar">Arabic</ion-select-option>
<ion-select-option value="en">English</ion-select-option>
</ion-select>
changeLanguage(language) {
this.translate.setDefaultLang(language)
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。