2016-08-18 10 views
4

При использовании углового перевода я встречаю странную проблему (без перевода), с интерполяцией параметров в качестве объектов даты.проблема с угловым переводом при интерполировании параметров с помощью san-очистки escapeParameters

Но сначала первое: here - плукер.

.

Используя стратегию санитарной обработки «escapeParameters» в поставщике перевода,

почему с JSON, отформатированной как это:

$scope.title = { day: 'tomorrow', today: new Date() }; 

результатов моих переводов всегда являются {}, используя законтрактованные формы

{{'VARIABLE_REPLACEMENT' | translate : title}} 

<translate="VARIABLE_REPLACEMENT" translate-values="{ day: 'tomorrow', today: title.today }"> 

Как вы можете видеть, другие способы использования углового перевода, похоже, работают нормально. Это какая-то ошибка? Или я делаю что-то неправильно?

ответ

0

Для всех, кто задавался вопросом, я открыл проблему в репозитории github angular-translate: эта проблема будет исправлена ​​в 2.11.2 (следующая версия текущей версии). Подробнее по вопросу here.

1

Похож на известную ошибку. В https://angular-translate.github.io/docs/#/guide/19_security они говорят

В настоящее время существует проблема с режимом дезинфицировать, он удвоит закодировать UTF-8 символов или специальные символы. Рекомендация: используйте стратегию 'escape' [вместо стратегии «escapeParameters» , пока это не будет .

Итак, я думаю, если вы хотите использовать вариации в своих первых и третьих тестах, вам может потребоваться стратегия «побега». Или, альтернативно, отформатируйте строку даты, чтобы не иметь характера, вызывающего проблему.

Когда я отредактировал ваш плункер, чтобы использовать «побег», все четыре ваших теста работали нормально.

+0

К сожалению, мне нужно не соглашаться: использование стратегии дезинфекции «побег», похоже, не работает с особыми символами, которые мне нужны, например «>» в ​​примере (вы можете видеть, что это разрешено в & gt;). Таким образом, решение использования escape не подходит для меня. +1 за усилие. – Luxor001

+0

Ах да, теперь я вижу. Я просто смотрел на значения даты, которые возникали при изменении стратегии. –