Создание шаблонов на стороне клиента с неизвестными переменными

У нашей компании есть интранет, состоящий из нескольких шаблонов электронной почты, заполненных переменными (например, [[ИМЯ]], [[ПРОЕКТ]] и так далее). Я думал о реализации какого-то шаблона на стороне клиента, чтобы упростить замену этих переменных фактическими значениями.

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

Кто-нибудь знает какие-либо решения / плагины, которые делают это возможным?

Заранее спасибо!


person Eirik Johansen    schedule 28.04.2010    source источник


Ответы (2)


Разве вы не можете просто использовать простое регулярное выражение?

 var variables = mycontent.match(/\[\[(.*?)\]\]/g);

Я установил здесь демонстрацию, чтобы вы могли увидеть ее в действии.

person Mottie    schedule 28.04.2010
comment
Выглядит отлично! Я закружу. - person Eirik Johansen; 29.04.2010
comment
Работал как шарм! Для тех, кому интересно, я изменил пример, чтобы сделать именно то, что мне нужно: jsfiddle.net/KMVRJ/ 5 - person Eirik Johansen; 29.04.2010

Если набор шаблонов уже кэширован на клиенте и доступен клиенту по запросу, и каждый шаблон будет иметь свой собственный набор информации, который будет заменен (либо жестко запрограммирован, либо определен во время выполнения). Затем мы можем найти какое-то общее решение

Псевдокод

- Decide which Template now need to render
- Send a Ajax command of array of variables in to be replace in the template 
  [{var_name:"%project_name%",var_value:"Project" },{var_name:"%superviser%",var_value:"Its me :)" }]


- Write a generic code that loop through json array and replace the var_name with the template source 
  Check this - http://api.prototypejs.org/language/template/
person Ifi    schedule 28.04.2010