Обновите translateParams в директиве ng2-translate

Дана строка перевода, такая как:

"TIMEOUT": "Timeout in {{value}} seconds."

Можно ли связать value таким образом, что это вызовет ng2-translate обновить переведенную строку при изменении базового параметра?

import { Component } from '@angular/core';
import { TranslateService } from 'ng2-translate/ng2-translate';

@Component({
    template: `<span translate [translateParams]="{ value: countdown }">TIMEOUT</span>
        <span>{{ countdown }}</span>
        <span>{{ message }}</span>`
})
export class TimeoutComponent {
    countdown: number = 10;
    message: string;
    constructor(private translationService: TranslateService) {
        let intervalId = setInterval(() => {
            this.countdown--;
            if (this.countdown <= 0) { clearInterval(intervalId); }
            console.log(this.countdown);
            this.translationService.get('TIMEOUT', { value: this.countdown }).subscribe((result) => this.message = result);
         }, 500);
    }
}

Вышеуказанный компонент будет отображаться Timeout in 10 seconds. статически, но второй диапазон (и консоль) покажет значение, уменьшающееся, как вы ожидаете.

Способ, которым я работал над этим (как показано выше), заключается в использовании TranslationService извлекать переведенную строку на каждом тике интервала и обновлять границу message свойство компонента внутри шаблона.

0 ответов

Другие вопросы по тегам