Учебники

Прототип — Шаблонирование

Шаблоны используются для форматирования группы похожих объектов и для получения форматированного вывода для этих объектов.

Prototype предоставляет класс Template , который имеет два метода:

  • Template () — это метод конструктора, который используется для создания объекта шаблона и вызова методаvalu () для применения шаблона.

  • оценивать () — этот метод используется для применения шаблона для форматирования объекта.

Template () — это метод конструктора, который используется для создания объекта шаблона и вызова методаvalu () для применения шаблона.

оценивать () — этот метод используется для применения шаблона для форматирования объекта.

Для создания форматированного вывода необходимо выполнить три шага.

  • Создать шаблон — это включает в себя создание предварительно отформатированного текста. Этот текст содержит форматированное содержимое вместе со значениями # {fieldName} . Эти значения # {fieldName} будут заменены фактическими значениями, когда метод valu () будет вызван с фактическими значениями.

  • Определение фактических значений — включает в себя создание фактических значений в форме ключей и значений. Эти ключи будут отображены в шаблоне и будут заменены соответствующими значениями.

  • Сопоставление ключей и замена значений. Это последний шаг, на котором будет вызываться метод define () , и все ключи, доступные в отформатированном объекте, будут заменены определенными значениями.

Создать шаблон — это включает в себя создание предварительно отформатированного текста. Этот текст содержит форматированное содержимое вместе со значениями # {fieldName} . Эти значения # {fieldName} будут заменены фактическими значениями, когда метод valu () будет вызван с фактическими значениями.

Определение фактических значений — включает в себя создание фактических значений в форме ключей и значений. Эти ключи будут отображены в шаблоне и будут заменены соответствующими значениями.

Сопоставление ключей и замена значений. Это последний шаг, на котором будет вызываться метод define () , и все ключи, доступные в отформатированном объекте, будут заменены определенными значениями.

Example1

Шаг 1

Создать шаблон.

var myTemplate = new Template('The \ TV show #{title} was directed by #{author}.');

Шаг 2

Подготовьте наш набор значений, которые будут переданы в вышеуказанном объекте, чтобы иметь форматированный вывод.

var record1 = {title: 'Metrix', author:'Arun Pandey'};
var record2 = {title: 'Junoon', author:'Manusha'};
var record3 = {title: 'Red Moon', author:'Paul, John'};
var record4 = {title: 'Henai', author:'Robert'};
var records = [record1, record2, record3, record4 ];

Шаг 3

Последний шаг — заполнение всех значений в шаблоне и получение окончательного результата следующим образом:

records.each( function(conv) {
   alert( "Formatted Output : " + myTemplate.evaluate(conv) );
});

Итак, давайте соединим все эти три шага вместе —

<html>
   <head>
      <title>Prototype examples</title>
      <script type = "text/javascript" src = "/javascript/prototype.js"></script>
      
      <script>
         function showResult() {
            //  Create template with formatted content and placeholders.
            var myTemplate = new Template('The \ TV show #{title} was directed by #{author}.');
   
            // Create hashes with the required values for placeholders
            var record1 = {title: 'Metrix', author:'Arun Pandey'};
            var record2 = {title: 'Junoon', author:'Manusha'};
            var record3 = {title: 'Red Moon', author:'Paul, John'};
            var record4 = {title: 'Henai', author:'Robert'};
            var records = [record1, record2, record3, record4 ];

            // Now apply template to produce desired formatted output
            records.each( function(conv) {
               alert( "Formatted Output : " + myTemplate.evaluate(conv) );
            });
         }
      </script>
   </head>

   <body>
      <p>Click the button to see the result.</p>
      <br />
      <br />
      <input type = "button" value = "Result" onclick = "showResult();"/>
   </body>
</html>

Это даст следующий результат —