Синтаксическая ошибка с Микро Шаблонной обработкой John Resig после изменения тегов шаблона <# {%} и т.д.

Я испытываю немного затруднений из-за Микро шаблонной обработки John Resig.

Кто-либо может помочь мне с тем, почему это не работает?

Это - шаблон

<script type="text/html" id="row_tmpl">
test content {%=id%} {%=name%}
</script>

И измененный раздел механизма

str
      .replace(/[\r\t\n]/g, " ")
      .split("{%").join("\t")
      .replace(/((^|%>)[^\t]*)'/g, "$1\r")
      .replace(/\t=(.*?)%>/g, "',$1,'")
      .split("\t").join("');")
      .split("%}").join("p.push('")
      .split("\r").join("\\'")
  + "');}return p.join('');");

и JavaScript

var dataObject = { "id": "27", "name": "some more content" };
var html = tmpl("row_tmpl", dataObject);

и результат, поскольку Вы видите =id и =name, кажется, находится в неправильном месте? Кроме изменения шаблонных блоков синтаксиса от <% %> до {% %} я ничего не изменил.

Это из Firefox.

Error: syntax error
Line: 30, Column: 89
Source Code:
var p=[],print=function(){p.push.apply(p,arguments);};with(obj){p.push(' test content ');=idp.push(' ');=namep.push(' ');}return p.join('');
5
задан Chris Barry 16 April 2010 в 10:37
поделиться

1 ответ

Когда вы модифицировали движок, вы забыли изменить эти строки:

  .replace(/((^|%>)[^\t]*)'/g, "$1\r")
  .replace(/\t=(.*?)%>/g, "',$1,'")

на это:

  .replace(/((^|%\})[^\t]*)'/g, "$1\r")
  .replace(/\t=(.*?)%\}/g, "',$1,'")
2
ответ дан 14 December 2019 в 04:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: