translate pipe works in any other components

问题描述 投票:0回答:1

我对Angular很陌生。我在doc和stackoverflow里找过答案,但我没有找到。所以,很抱歉,如果我的问题很晦涩。

我创建了一个组件,将我的模式内容保存在一个单独的文件中。我从父组件中使用open.dialog打开这个模态,就像这样。

  openMyModalDialog() {
    const dialogRef = this.dialog.open(MyModalComponent, {
      panelClass: 'own-modal',
      width: '300px'
    });

    dialogRef.afterClosed().subscribe(result => {
      alert('closed');
    });
  }

嗯,MyModalComponent:

<h1 mat-dialog-title>{{ 'myTargetTranslateKey' | translate }}</h1>
<div mat-dialog-content>
  <p>What's your favorite animal?</p>
  <mat-form-field>
    <mat-label>Favorite Animal</mat-label>
  </mat-form-field>
</div>
<div mat-dialog-actions>
  <button mat-button (click)="onNoClick()">No Thanks</button>
</div>

我没有在模态组件中导入TranslateModule,因为我认为那是在模块中导入的。

...

@NgModule({
  imports: [
    CommonModule,
    TranslateModule,
    MomentModule,
    IMaskModule,

它也被导入到 app.module.ts.使用TranslateModule.forRoot()。

很重要的一点是,这段代码,也是在打开对话框的父体中的.

先谢谢你

更新: 我在模态组件中导入了ngx-translatecore的TranslateService。我在关闭事件上放了一个控制台日志,我可以看到this.translateSevice.instant('key')工作了!... 所以问题是管道不工作。

更新2: 它还适用于 <h1 mat-dialog-title [translate]="'key'"></h1> 但它不与管道! :'(

更新3: 管道不通是指结果是空的,什么都不显示,但控制台也没有错误。

angular angular-material angular-translate
1个回答
0
投票

我发现了这个错误。很抱歉这个新手的错误。

我从angular-material doc中复制的例子有一个内部组件(mat-form-...),它没有被导入,我也没有使用。

没有错误信息,什么都没有。我把它删除了,一切都很好。

谢谢。

© www.soinside.com 2019 - 2024. All rights reserved.