问题描述
我创建了一个应用程序,该应用程序可以用 3 种不同的语言显示项目:Eng、Spa、Por。它们的显示方式是在第一个用户选择页面上设置的,他们在其中选择首选语言并将该值保存在 localStorage 中。
除了菜单之外一切正常,因为它是在应用打开时创建的,这是在用户选择之前创建的。
那么,我的问题是,如何获取此值以更改菜单中的语言并正确显示名称?
应用组件 html:
<ion-app>
<ion-split-pane contentId="main-content">
<ion-menu contentId="main-content" type="overlay">
<ion-content>
<ion-list id="inBox-list">
<ion-list-header>MENU</ion-list-header>
<ion-menu-toggle auto-hide="false" *ngFor="let p of appPages; let i = index">
<ion-item [routerLink]="[p.url]" lines="none" detail="false" routerLinkActive="selected" (click)="setName(p.name_esp,p.name_eng,p.name_por)">
<div class="icon" style="background: url('{{url}}api/downloadfile/{{p.image}}') 0/100% no-repeat;">
</div>
<ion-label *ngIf="lang == 'esp'">{{ p.name_esp | uppercase }}</ion-label>
<ion-label *ngIf="lang == 'eng'">{{ p.name_eng | uppercase }}</ion-label>
<ion-label *ngIf="lang == 'por'">{{ p.name_por | uppercase }}</ion-label>
</ion-item>
</ion-menu-toggle>
</ion-list>
</ion-content>
</ion-menu>
<ion-router-outlet id="main-content"></ion-router-outlet>
</ion-split-pane>
</ion-app>
应用组件 ts:
import { Component } from '@angular/core';
import { SharedService } from './services/shared.service';
@Component({
selector: 'app-root',templateUrl: 'app.component.html',styleUrls: ['app.component.scss'],})
export class AppComponent {
public appPages = [
];
pages: any[]=[];
url:string;
lang:string;
constructor(private service: SharedService) {
this.getCategories();
this.url = service.url;
this.lang = localStorage.lang;
}
getCategories(){
this.lang = localStorage.lang;
console.log('lenguaje = ' + this.lang);
this.service.getCategories().subscribe(data => {
this.pages = JSON.parse(localStorage.categories);
for(let i = 0; i<this.pages.length; i++){
this.appPages.push(this.pages[i]);
}
});
}
setName(str1,str2,str3){
if(this.lang == 'esp'){
localStorage.category_name = str1;
} else if(this.lang == 'eng'){
localStorage.category_name = str2;
} else {
localStorage.category_name = str3;
}
}
}
提前致谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)