【问题标题】:Angular material 2 does it support translationAngular Material 2 是否支持翻译
【发布时间】:2018-04-02 13:45:54
【问题描述】:

我第一次尝试 Angular-material,当我用 ngx-translate 测试 mat-select 时,它没有更新语言,直到重新点击输入会改变生效。

框架支持本地化/翻译还是我用错了

代码:

 <mat-form-field>
   <mat-select placeholder="City" [formControl]="city">
      <mat-option *ngFor="let city of cityList" [value]="city.id">
        {{city.name | translate}}
      </mat-option>
  </mat-select>
</mat-form-field>

【问题讨论】:

  • 你遇到的任何错误,我没有使用 ngx translate 但我不认为这是由于材料不支持它
  • 没有错误代码即使使用普通 html 也可以工作,它的材料在切换语言时不会更新文本,我什至尝试使用自定义管道和没有 ngx-translate 的对象来切换文本,但是在我单击输入之前,材料不会更新视图。我认为他们的组件不支持我不知道的异步/动态输入

标签: angular angular-material2 ngx-translate


【解决方案1】:

这不是因为 Angular 处理模板表达式的方式吗?

Angular 在每个更改检测周期后执行表达式。变更检测周期由许多异步活动触发,例如承诺解决、http 结果、计时器、按键和鼠标移动事件。

这就是为什么点击会触发执行翻译管道的表达式

【讨论】:

  • 您将如何解决此问题(尝试切换语言并注意控制台中臭名昭著的 ChangeDetection 错误)-stackblitz.com/edit/ng-material-mat-select-translate-issue 我的临时解决方法是使用带有材料指令的本机选择,这似乎工作得很好。
  • @JagpreetSingh 来自您发布的链接,我无法重现您所说的问题,您能解释一下以便我为您提供帮助
  • @webruster 实际上,我修复了第 25 行的链接 this.cd.detectChanges()
  • @JagpreetSingh 那么你现在的问题是什么? ,我的意思是我可以看到这个问题已经解决了,所以你还想要什么?
猜你喜欢
  • 2016-09-11
  • 2011-07-30
  • 2018-09-19
  • 2020-05-08
  • 2016-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多