Подтвердить что ты не робот

Любые достижения Джона Ресига "JavaScript Micro-Templating"?

Итак, я видел этот пост на JavaScript Micro-Templating от Джона Ресига, и у меня есть потребность в движке с микро-шаблонами, подобным этому.

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

Итак, мне интересно, есть ли более стабильная/продвинутая версия этого механизма для микро-шаблонов Джона Ресига? Если да, то как я могу его получить? Эта книга JavaScript недоступна в моей стране.

4b9b3361

Ответ 1

Вы можете определенно приобрести PDF-версию онлайн, когда он появится, как указывает @James, независимо от страны проживания.

существует более стабильная/продвинутая версия этого Micro-templating двигатель Джона Ресига?

Смотрите блог Рика Сталя (на кучу клиентских шаблонов), где он исправляет проблему с одинарными кавычками в процессоре Resig Micro-Templating. Это о единственном улучшении источника, который я видел.

Ответ 2

Также см. jQote2. Я приведу цитату из самого сайта:

jQote (произносится как Star Treks Chakotey) - это, в основном, переиздание полезной утилиты JavaScript для микро-шаблонов John Resigs. Я взял его код и поместил его в jQuery, переработал парсинг/часть преобразования и расширил его функциональность, чтобы свести к минимуму все усилия кодирования.

Ответ 3

Взгляните на плагин jQuery

https://github.com/vkiryukhin/vkTemplate,

который построен на двигателе Micro-Templating от John Resig .  Проблема с "одной кавычкой" исправлена, а движок немного упрощен согласно архитектуре плагинов.

Демо и документация на http://www.eslinstructor.net/vktemplate/

Ответ 4

Если вы перейдете к http://www.manning.com/resig/, вы можете предварительно заказать PDF файл, который позволит вам увидеть предстоящую книгу.

Ответ 6

простой шаблонный двигатель... супер маленький.. на основе кода Джона Реджигаса... с улучшениями. Исправлено только 335 байт и быстро пылает, и исправлено множество ошибок из исходного кода.

https://github.com/leolems/javascript/tree/master/templates

Ответ 7

Это Джон Ресиг (слегка измененный) script, его из веб-страницы Рика Стралла (http://weblog.west-wind.com/posts/2008/Oct/13/Client-Templating-with-jQuery)

var _tmplCache = {}
this.tmpl= function(str, data) {
/// <summary>
/// Client side template parser that uses &lt;#= #&gt; and &lt;# code #&gt; expressions.
/// and # # code blocks for template expansion.
/// NOTE: chokes on single quotes in the document in some situations
///       use &amp;rsquo; for literals in text and avoid any single quote
///       attribute delimiters.
/// </summary>    
/// <param name="str" type="string">The text of the template to expand</param>    
/// <param name="data" type="var">
/// Any data that is to be merged. Pass an object and
/// that object properties are visible as variables.
/// </param>    
/// <returns type="string" />  
var err = "";
try {
    var func = _tmplCache[str];
    if (!func) {
        var strFunc =
        "var p=[],print=function(){p.push.apply(p,arguments);};" +
                    "with(obj){p.push('" +
        //                        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('');";

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

        //alert(strFunc);
        func = new Function("obj", strFunc);
        _tmplCache[str] = func;
    }
    return func(data);
} catch (e) { err = e.message; }
return "< # ERROR: " + err.htmlEncode() + " # >";
}

Его можно использовать следующим образом:   tmpl ($ ('myHtmlTempl'). html(), data);

Я тестировал его, и он работает с "одинарными кавычками" (это была моя основная проблема, пока я не нашел ее). Эта версия готова к работе с тегами < # # > .