Шаблонирование на стороне клиента с неизвестными переменными - PullRequest
1 голос
/ 28 апреля 2010

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

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

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

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

Ответы [ 2 ]

1 голос
/ 28 апреля 2010

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

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

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

0 голосов
/ 28 апреля 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/
...