Атрибут углового перевода против фильтра

0

Какой из этих двух лучше?

<span translate="key">Key</span>

или

<span>{{'key' | translate}}</span>

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

Теги:
angular-translate

1 ответ

2
Лучший ответ

Использование атрибута лучше по производительности, особенно если вы собираетесь использовать переводы для элементов, которые будут внутри ngRepeats. Это связано с тем, что фильтр работает внутри.

Каждый раз, когда есть цикл дайджеста, angularjs перезагружает все выражения, содержащие фильтры. Это связано с тем, что угловой не может знать, изменился ли фильтр или нет. Это означает, что даже если ключ перевода не изменился, но какое-то другое значение в области имеет, угловой будет просматривать каждый перевод и переводить его снова, просто чтобы прийти к выводу, что все они остаются неизменными.

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

Изменить: И насколько я знаю, нет необходимости заполнять контент в первом прецеденте. Вы можете просто оставить его пустым.

  • 0
    Привет, Педро, не могли бы вы предложить, как передать аргумент в случае атрибута «перевести»
  • 0
    Допустим, у вас есть параграф. Просто сделайте: <p translate="TRANSLATION_ID"></p> . Обратите внимание, что вы должны заменить TRANSLATION_ID фактическим ключом вашего перевода.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню