小编Szo*_*rba的帖子

Angular ngx 翻译,静态方法中全局范围的 TranslateService

我想在我的类中以静态方法使用 TranslateService(Angular ngx-translate) 。

export class ClassName {
    static CONFIG = {
        selectList: [
            { name: 'name', label: TranslateService.instant('my.i18n.key') }, // i need something like this
        ]
    }
Run Code Online (Sandbox Code Playgroud)

或者像这样:

const translate = TranslateService reference from the root(global scope)

    export class ClassName {
    static CONFIG = {
        selectList: [
            { name: 'name', label: translate.instant('my.i18n.key') },
        ]
    }
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?任何想法?

static class ngx-translate angular

5
推荐指数
0
解决办法
718
查看次数

不使用 mat-error、ng-template 和 *ngTemplateOutlet 进行渲染

这段代码工作正常(没有 ngTemplateOutlet):

<mat-form-field [formGroup]="formGroup">
    <input matInput type="text"
        [formControlName]="fControlName"
    >
  <ng-container *ngIf="isShowErrors()" ngProjectAs="mat-error">
    <ng-container *ngFor="let error of showSMErrors" >
      <mat-error>{{ error.message }}</mat-error>
    </ng-container>
  </ng-container>
</mat-form-field>
Run Code Online (Sandbox Code Playgroud)

但是这段代码无法正常工作(使用 ngTemplateOutlet),为什么?(就像普通的红色文本一样查看 error.message):

<mat-form-field [formGroup]="formGroup">
    <input matInput type="text"
        [formControlName]="fControlName"
    >
  <ng-container *ngTemplateOutlet="showErrorsTemplate"></ng-container>
</mat-form-field>

<ng-template #showErrorsTemplate ngProjectAs="mat-error">
  <ng-container *ngIf="isShowErrors()" >
    <ng-container *ngFor="let error of showSMErrors" >
      <mat-error>{{ error.message }}</mat-error>
    </ng-container>
  </ng-container>
</ng-template>
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?谢谢!

angular-material ng-template angular ng-container

2
推荐指数
1
解决办法
2528
查看次数