Неперехваченная ошибка: ошибки синтаксического анализа шаблона: не удалось найти канал 'translate' - ionic 3 с угловым 6

Я начинающий, так что проявите ко мне терпение, пожалуйста !!

Не понимаю, что делать, чтобы эта штука заработала! Искал, но никакой ответ мне не помог.

Трубы работают на моей странице регистрации ресторана, но не могут использовать ее в компоненте информации о ресторане (используется в restaurant-register.html).

Вот мои файлы: app.module.ts ...

import {TranslateLoader, TranslateModule} from "@ngx-translate/core";
import {TranslateHttpLoader} from "@ngx-translate/http-loader";
import {HttpClient, HttpClientModule} from "@angular/common/http";
...
imports: [
          HttpClientModule,
          TranslateModule.forRoot({
            loader: {
              provide: TranslateLoader,
              useFactory: (HttpLoaderFactory),
              deps: [HttpClient]
            }
          }),
...
export function HttpLoaderFactory(http: HttpClient) {
  return new TranslateHttpLoader(http, './assets/i18n/', '.json');
}

register-restaurant.html - отлично работает

<ion-content padding margin-top="2em">
  <restaurant-info #restaurantInfo></restaurant-info>

  <button ion-button full
          type="submit"
          [disabled]="!theRestaurant.signupRestaurantForm.valid"
          (click)="onSubmit(theRestaurant.signupRestaurantForm.valid)">
    <ion-icon name="archive"></ion-icon>&nbsp;{{'Save' | translate}} 
  </button>

...

restaurant-info.html - где я получаю ошибку «Не удалось найти трубу 'translate'» ...

<ion-list>
    <h1>{{'Restaurant Name' | translate}}</h1>

...

У меня нет "import {TranslateService}" в файле restaurant-info.ts, потому что мне нужно использовать только translate в файле html. Даже если я импортирую его, это не имеет значения!

Что мне нужно сделать?


person Filipe    schedule 05.11.2018    source источник
comment
перевести 8.0.0 http-loader 3.0.1   -  person Filipe    schedule 05.11.2018


Ответы (2)


Попробуйте импортировать TranslateModule в RestaurantModule

person Alexander    schedule 05.11.2018
comment
Я пробовал это и еще кое-что, что видел при поиске решения. Это не имеет значения, потому что я не использую TranslateModule в ts-файле. - person Filipe; 05.11.2018

Одно из решений (возможно, не самое элегантное) - использовать метод get () из TranslateService.

В ts файле создайте функцию для tanslate:

private translateKey(key: string): string {
    let translated = '';
    this.translateService.get(key).subscribe(text => translated = text);
    return translated;
}

Теперь используйте функцию translateKey в представлении шаблона html:

<strong>{{translateKey('Name:')}}</strong> {{store.clientName}}

Теперь работает ...

person Filipe    schedule 08.11.2018