проверка неопределенной переменной с помощью Underscore.js
У меня проблема с шаблонами Underscore.js и Internet Explorer. Вот's часть шаблона, которая вызывает проблемы:
<p>
No description
</p>
Когда переменнаяdescription
не определено (что означает, что яя не предоставляю его шаблону, переменная не существует), это прекрасно работает в Safari, Firefox, Chrome.
Internet Explorer, однако, нене работает правильно. Вместо показаNo description
IE8 и IE9 показывают[object HTMLMetaElement]
и IE7 показывает.[object]
Проверка результатаtypeof description
возвращаетсяundefined
в Safari, Firefox, Chrome, но, по-видимому, Internet Explorer возвращаетobject
вместо.
Я уже пробовал Underscore.js_.isUndefined(value)
функция, но это нене работает, когда переменная не существует.
Кто-нибудь знает обходной путь для этой проблемы? (обратите внимание, что я не могу предоставить переменную без значения - она либо существует, либо нетт)
Обновить Я нашел обходной путь в одном из вопросов Github Underscore.jshttps://github.com/documentcloud/underscore/issues/237#issuecomment-1781951
Может кто-нибудь объяснить, почему IE ведет себя по-разному, и почему обходной путь действительно работает?
Обновление 2 @ John-DavidDalton предоставил другой, лучший обходной путь в комментариях ниже (прямая ссылка на него некажется, работает)