【发布时间】:2020-04-08 13:53:54
【问题描述】:
我有一个名为 navbar 的组件,其中包含一个通过 ngx/translate 更改语言的下拉菜单:
<div class="traduction">
<ul>
<li class="nav-item dropdown no-arrow">
<a class="nav-link dropdown-toggle" id="userDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<img style="width:20px; height:20px;"class="img-profile rounded-circle" [src]="translate.currentLang == 'fr' ? '../../../assets/img/fr.png' : '../../../assets/img/ar.png'">
</a>
<div class="lang-menu dropdown-menu dropdown-menu-right shadow animated--grow-in" aria-labelledby="userDropdown">
<a class="dropdown-item" (click)="changeLang('fr')">
<i class="far fa-flag fa-sm fa-fw mr-2 text-gray-400"></i>
Français
</a>
<a class="dropdown-item" (click)="changeLang('ar')">
<i class="far fa-flag fa-sm fa-fw mr-2 text-gray-400"></i>
عربي
</a>
</div>
</li>
</ul>
</div>
constructor(
public translate: TranslateService,
private router: Router,
private http: HttpClient,
// private socket: Socket
private socketService: SocketIOService
) {
translate.setDefaultLang('fr');
translate.use('fr');
}
changeLang(val) {
this.translate.use(val)
this.currentlng.emit(val)
}
我想检测当前的语言更改变量(val)并将其发送到其他组件,我应该使用@Output 装饰器和 eventEmitor 还是其他东西?
【问题讨论】:
标签: javascript angular components output ngx-translate