프로토 타입-템플릿

템플릿은 유사한 개체 그룹의 형식을 지정하고 이러한 개체에 대한 형식화 된 출력을 생성하는 데 사용됩니다.

Prototype 은 두 가지 방법이 있는 Template 클래스를 제공합니다.

  • Template()− 생성자 메서드로 템플릿 객체를 생성하고, 템플릿 을 적용하기 위해 eva () 메서드를 호출 합니다.

  • evaluate() −이 방법은 개체를 포맷하기 위해 템플릿을 적용하는 데 사용됩니다.

형식화 된 출력을 생성하는 데는 세 단계가 포함됩니다.

  • Create a template− 여기에는 미리 서식이 지정된 텍스트 생성이 포함됩니다. 이 텍스트에는#{fieldName}가치. 이들#{fieldName}평가 () 메서드가 실제 값으로 호출 될 때 값은 실제 값으로 대체됩니다 .

  • Defining actual values− 여기에는 키와 값의 형태로 실제 값을 생성하는 것이 포함됩니다. 이러한 키는 템플릿에 매핑되고 해당 값으로 대체됩니다.

  • Mapping Keys and replacing Values− 이것은 평가 () 가 호출되고 포맷 된 객체에서 사용 가능한 모든 키가 정의 된 값으로 대체되는 마지막 단계 입니다.

예 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>

이것은 다음 결과를 생성합니다-

산출