Микротемплатная структура Джона Резига выдает ошибки на веб-странице asp.net - PullRequest
3 голосов
/ 28 июля 2011

Я изучаю микротемблирующий каркас Джона Резига , и он замечательный, маленький и соответствует моим требованиям. Единственная проблема заключается в том, что синтаксис сбивает с толку ASP.NET Framework. Это связано с тем, что что-то положить внутрь

<%=id%>
<%=(i % 2 == 1 ? " even" : "")%>

синтаксис выражения оценивается с помощью серверных переменных. Кто-нибудь взломал / изменил код для работы с ASP.NET?

Ответы [ 4 ]

9 голосов
/ 28 июля 2011

Просто измените <% и %> в функции синтаксического анализа на <# и #> соответственно.Я видел, как это сделано, и это прекрасно работает.

 // Convert the template into pure JavaScript
    str
      .replace(/[\r\t\n]/g, " ")
      .split("<#").join("\t")
      .replace(/((^|\#>)[^\t]*)'/g, "$1\r")   //note the extra \ here
      .replace(/\t=(.*?)\#>/g, "',$1,'")      //and here
      .split("\t").join("');")
      .split("#>").join("p.push('")
      .split("\r").join("\\'")

... и т. Д.

2 голосов
/ 28 июля 2011

Некоторое время назад у Рика Страла был хороший пост, в котором он изменил его так, чтобы он был дружественным к ASP.NET (микротемблирование подходит к концу; прокрутите вниз): http://www.west -wind.com / weblog / posts / 2008/ октябрь / 13 / Клиент-Шаблонирование-с JQuery

2 голосов
/ 28 июля 2011

Если это не работает из-за <% и %>, то вы можете легко изменить исходный код.

    str
      .replace(/[\r\t\n]/g, " ")
      .split("<%").join("\t") // this % you could change to @ or whatever
      .replace(/((^|%>)[^\t]*)'/g, "$1\r") // same here
      .replace(/\t=(.*?)%>/g, "',$1,'") // same here
      .split("\t").join("');")
      .split("%>").join("p.push('") // same here
      .split("\r").join("\\'")
1 голос
/ 09 января 2015

Вы также можете заменить знак% на представление в процентах в процентном выражении в строках JavaScript, которое равно «\ u0025».Поэтому вместо строки "<% = id%>" вы должны написать "<\ u0025 = id \ u0025>"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...