Использование интервала {} и # {} в шаблоне нефрита (восклицательный объект, хэш-объект)
В шаблоне нефрита (с использованием выражения над node.js) я вижу шаблон с использованием следующего синтаксиса:
script(type='text/template', id='data-services') !{data}
Я не понимаю конструкцию !{ }
; по-видимому, он интерполирует объект javascript, определенный в другом месте:
var data={ name:"Doe", age:"21" };
Jade docs & tuts показывают использование #{ }
для интерполяции, но я не вижу !{ }
. Даже #{ }
не задокументирован, поэтому я думаю, что это не специфично для jade. Откуда появился этот синтаксис и где он задокументирован?
Ответы
Ответ 1
На самом деле его очень трудно найти. Посмотрите на этот ресурс:
http://naltatis.github.io/jade-syntax-docs/#escaping
#
используется, когда вы хотите избежать данных и !
когда вы хотите, чтобы он был сырым.
Например, скажем, что name = "Hello <em>World</em>"
. Тогда у вас есть:
#{name} --> Hello <em>World</em>
!{name} --> Hello <em>World</em>
Подумайте об этом так: #
будет отображать name
поскольку оно написано в то время как !
будет рассматривать его как HTML.