Prototype - 模板

模板用于格式化相似对象组并为这些对象生成格式化输出.

Prototype提供了一个 Template 类,它有两个方法去;

  • 模板() : 这是一个构造函数方法,用于创建模板对象并调用 evaluate()方法来应用模板.

  • evaluate() : 此方法用于应用模板来格式化对象.

创建格式化输出涉及三个步骤.

  • 创建模板 : 这涉及创建预格式化的文本.此文本包含格式化内容以及#{fieldName} 值.当使用实际值调用 evaluate()方法时,这些#{fieldName} 值将替换为实际值.

  • 定义实际值 : 这涉及以Keys和Values的形式创建实际值.这些键将映射到模板中,并将替换为相应的值.

  • 映射键并替换值 : 这是调用 evaluate()的最后一步,格式化对象中的所有可用键都将被定义的值替换.

示例1

步骤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>

这将产生以下结果 :

输出