我对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-material doc中复制的例子有一个内部组件(mat-form-...),它没有被导入,我也没有使用。
没有错误信息,什么都没有。我把它删除了,一切都很好。
谢谢。