Обновление переводов с помощью angular-translate

Я использую angular translate для i18n.

Конкретная функция, над которой я работаю, — это обновление статуса книги. В обратном вызове службы, в случае успеха, я обновляю статус своей книги, скажем, с Open на Closed. Если я просматриваю область действия (используя Batarang), я вижу свой элемент DOM как таковой:

<span translate="Closed" class="ng-scope">Open</span>

Как видите, значение перевода обновляется, но сам перевод не происходит сам по себе. Я прочитал документы и понимаю, что это ожидаемое поведение. Однако я хочу знать, как следует обновлять переведенное значение?

В настоящее время я внедряю службу $translate и выполняю $translate.refresh() каждый раз, когда обновляю значение области, которое необходимо повторно преобразовать. Я чувствую, что это неуклюже и, вероятно, не так, как я должен это делать.

есть идеи?


person Scott Silvi    schedule 20.05.2014    source источник


Ответы (2)


Вы определенно не должны делать обновление для этого.

просто сделайте что-то вроде этого:

<span> {book.state | translate} </span> 

Учитывая, что ваша книжная модель имеет состояние-член, чтобы отразить его состояние. Всякий раз, когда модель изменяется, значение состояния будет повторно преобразовано.

person mvermand    schedule 03.09.2014

Создайте общий сервис для перевода, это настроит наш код перевода, в частности настроит расположение наших файлов перевода. Создайте каталог src/common/translation и файл src/common/translation/translation.js: http://technpol.wordpress.com/2013/11/02/adding-translation-using-angular.-translate-to-an-angularjs-app/

angular.module('angularTranslateApp', ['pascalprecht.translate'])
  .config(function($translateProvider, $translatePartialLoaderProvider) {
    $translateProvider.useLoader('$translatePartialLoader', {
      urlTemplate: '/UI/assets/translation/{lang}/{part}.json'
    }
  });

$translateProvider.preferredLanguage('en-AU'); });
person user3654728    schedule 20.05.2014