原型 - 模板
模板用于格式化一组类似的对象,并为这些对象生成格式化的输出。
Prototype 提供了一个 Template 类,它有两个方法:
Template() - 这是一个构造方法,用于创建模板对象并调用 evaluate() 方法来应用模板。
evaluate() - 此方法用于应用模板来格式化对象。
创建格式化输出涉及三个步骤。
创建模板 - 这涉及创建预格式化的文本。此文本包含格式化的内容以及 #{fieldName} 值。当使用实际值调用 evaluate() 方法时,这些 #{fieldName} 值将被实际值替换。
定义实际值 - 这涉及以键值对的形式创建实际值。这些键将在模板中映射,并被相应的替换。
映射键并替换值 - 这是最后一步,其中将调用 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>
这将产生以下结果:
输出
广告