Вроде изменился API для шаблонов. Не уверен, что это считается функцией, но я бы счел это ошибкой, поскольку она нарушает все, что я когда-либо делал с шаблонами подчеркивания.
Проблема в том, что я больше не могу передавать данные и возвращать отрисованный шаблон. Теперь он возвращает функцию вместо строки.
Согласно журналу изменений 1.7: «Шаблоны подчеркивания больше не принимают исходный объект данных. _.Template теперь всегда возвращает функцию». Итак, это изменение без обратной совместимости.
Верно. Разве это не ужасная идея? Что, если у кого-то есть шаблоны на стороне сервера с помощью node.js, и они невольно обновляются до подчеркивания 1.7? Они облажались. Почему бы просто не проверить, является ли объект объектом настроек или объектом данных, в зависимости от того, какие ключи у этого объекта?
См. Https://github.com/jashkenas/underscore/issues/1736 для рассуждений и https://github.com/jashkenas/underscore/issues/1805 для аргументов, которые подчеркивание должно следовать за semver.
В любом случае вы можете обновить свой собственный код до _.template(templateStr)(data)
.
Вопрос не в том, как обойти проблему. Я действительно принимаю перемены. Без учета всего кода, который ломается, с точки зрения производительности и API это имеет смысл. Для меня было грубой неожиданностью обновить мой сервер узла и перестать работать мои шаблоны электронной почты.
Спасибо, что указали на другие темы, связанные с проблемами. Мне понравилось читать обсуждения.
И я подумал, что если бы у меня была одна js-библиотека, у меня не было бы проблем с совместимостью, было бы подчеркивание .... и в младшей версии !!! этому нет оправданий ... :(
Самый полезный комментарий
И я подумал, что если бы у меня была одна js-библиотека, у меня не было бы проблем с совместимостью, было бы подчеркивание .... и в младшей версии !!! этому нет оправданий ... :(