Я испытываю немного затруднений из-за Микро шаблонной обработки 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('');
Когда вы модифицировали движок, вы забыли изменить эти строки:
.replace(/((^|%>)[^\t]*)'/g, "$1\r")
.replace(/\t=(.*?)%>/g, "',$1,'")
на это:
.replace(/((^|%\})[^\t]*)'/g, "$1\r")
.replace(/\t=(.*?)%\}/g, "',$1,'")