2016-07-03 1 views
0

Как я могу проанализировать и оценить шаблон, из строки или из тега: (то же самое)
<script type="template">hello {{person.name}}</script>?javascript parse template - родной путь?

var person = {name: "foo"} 

таким образом, что является родной в браузер?
До сих пор единственный способ, которым я придумал, - использовать s.replace("{{person.name}}", person.name) несколько раз, но это кажется неудобным и неэффективным.

Особенно хотелось бы знать, как это делают известные библиотеки (угловые, подчеркивающие, усы и т. Д.). то есть в функциях javascript они используют.

+0

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals – undefined

ответ

0

Есть библиотеки там, которые могут сделать это, однако в ES6 его встроенный, он называется Template_literals

Синтаксис является

let name = "Bob"; 
let halloBob = `Hello ${name}` 

Если вы ориентируетесь ES5, то вы должны использовать некоторые библиотеки как

http://handlebarsjs.com/

Но есть намного больше, чем только рули, я нашел этот блог, как вы можете написать свою собственную библиотеку шаблонов в 20 LOC:

http://krasimirtsonev.com/blog/article/Javascript-template-engine-in-just-20-line

+0

Я знаю эти библиотеки, я просто хотел знать, что такое собственный (= нет библиотеки) способ сделать это. то есть, каким образом эти библиотеки работают с шаблонами, даже общая идея – user3599803

+0

И я предполагаю, что все эти библиотеки (например, угловые) не используют новый синтаксис шаблона, так как он пока не поддерживается широко. Полезно знать. – user3599803

+0

@ user3599803 хорошо, если это отвечает на ваш вопрос, было бы неплохо, если вы его примете;) – webdeb