jquery tmpl 템플릿을 완전히 마스터하세요.

小云云
풀어 주다: 2017-12-29 11:30:24
원래의
6142명이 탐색했습니다.

저는 이전에 템플릿을 렌더링하기 위해 Angular를 사용했습니다. 우연히 가벼운 jquery tmpl을 발견했습니다. 이 문서는 주로 jquery tmpl 템플릿(예제 설명)을 제공합니다. 편집자님이 꽤 좋다고 생각하셔서 지금 공유하고 모두에게 참고용으로 드리도록 하겠습니다. 편집자를 따라 살펴보겠습니다. 모두에게 도움이 되기를 바랍니다.

플러그인 공식 설명: 일치하는 첫 번째 요소를 템플릿으로 사용하고 지정된 데이터를 렌더링하며 서명은 다음과 같습니다.


.tmpl([data,][options])
로그인 후 복사

매개변수 데이터의 목적은 분명합니다. render는 배열과 객체를 포함한 모든 js 유형이 될 수 있습니다. 옵션은 일반적으로 옵션입니다. 관계자는 여기의 옵션이 tmplItem 데이터 구조에서 상속된 사용자 정의 키-값 쌍의 맵이며 템플릿 렌더링 작업 중에 사용하기에 적합하다고 지적했습니다.

여기에서 최신 tmpl 플러그인을 다운로드할 수 있습니다. 공식에서 tmpl이 현재 베타 버전이므로 주의해서 사용해야 한다고 언급한 점도 언급할 가치가 있습니다.

다음은 간단한 예입니다


<!DOCTYPE html>
<html>
<head>
 <title>jquery template demo</title>
 <script type="text/javascript" src="js/jquery-1.11.1.min.js"></script>
 <script type="text/javascript" src="js/jquery.tmpl.js"></script>
 <script id="myTemplate" type="text/x-jquery-tmpl">
  <tr><td>${ID}</td><td>${Name}</td></tr>
 </script>
 <script type="text/javascript">
  $(function () {
   var users = [{ ID: &#39;hao1&#39;, Name: &#39;Tony&#39; }, { ID: &#39;hao2&#39;, Name: &#39;Mary hui&#39;}];
   $(&#39;#myTemplate&#39;).tmpl(users).appendTo(&#39;#rows&#39;);
  });
 </script>
 <style type="text/css">
  body
  {
   padding: 10px;
  }
  table
  {
   border-collapse: collapse;
  }
 </style>
</head>
<body>
 <table cellspacing="0" cellpadding="4" border="1">
  <tbody id="rows">
  </tbody>
 </table>
</body>
</html>
로그인 후 복사

효과는 다음과 같습니다

템플릿을 정의할 때


<script id=&#39;templateName&#39; type=&#39;text/x-jquery-tmpl&#39;></script>
로그인 후 복사

를 템플릿의 래퍼로 정의하여 사용하는 것이 권장되지만 이것이 유일한 것은 아닙니다.


<p id="template" > <!-- markup --></p>
로그인 후 복사

을 사용하여 캐시된 템플릿을 컴파일할 수도 있습니다. jQuery .tmpl()에서는 템플릿을 미리 컴파일하고 캐시한 다음 적절한 시점에 사용할 수도 있습니다. 예:

HTML:


<table cellspacing="0" cellpadding="4" border="1">
 <tbody id="compileRows">
 </tbody>
</table>
로그인 후 복사

JavaScript:


<script id="compile1" type="text/x-jquery-tmpl">
 {{tmpl &#39;cached&#39;}}
 <tr><td>${ID}</td><td>${Name}</td></tr>
</script>
<script id="compile2" type="type/x-jquery-tmpl">
 <tr><td colspan="2">${Group}</td></tr>
</script>
<script type="text/javascript">
 $(function () {
  var groupUsers = [{ ID: &#39;hao1&#39;, Name: &#39;Tony&#39;, Group: &#39;Administrators&#39; }, { ID: &#39;hao2&#39;, Name: &#39;Mary hui&#39;, Group: &#39;Users&#39;}];
  $(&#39;#compile2&#39;).template(&#39;cached&#39;);
  $(&#39;#compile1&#39;).tmpl(groupUsers).appendTo(&#39;#compileRows&#39;);
 });
</script>
로그인 후 복사

효과는 다음과 같습니다

$.template() 메서드, Html 조각을 다음으로 컴파일합니다. 템플릿, 예:

JavaScript


var markup = &#39;<tr><td>${ID}</td><td>${Name}</td></tr>&#39;;
$.template(&#39;template&#39;, markup);
$.tmpl(&#39;template&#39;, users).appendTo(&#39;#templateRows&#39;);
로그인 후 복사

이 방법으로 마크업에 정의된 템플릿을 templateRows 객체에 적용할 수 있습니다.

jQuery .tmpl() 태그, 표현식, 속성:

${}: 이전 예에서 판단하면 이 태그의 역할은 명백하며 자리 표시자와 동일하지만 작성하는 다른 방법이 있습니다. {{ = field}}예:


<script id="myTemplate" type="text/x-jquery-tmpl">
 <tr><td>{{= ID}}</td><td>{{= Name}}</td></tr>
</script>
로그인 후 복사

"=" 기호 다음에는 공백이 와야 한다는 점에 유의해야 합니다. 그렇지 않으면 아무런 효과가 없습니다.

jQuery .tmpl()에는 $item과 $data라는 두 가지 유용한 속성이 있습니다.

$item은 현재 템플릿을 나타내고 $data는 현재 데이터를 나타냅니다.

Html


<table cellspacing="0" cellpadding="4" border="1">
  <tbody id="propertyRows">
  </tbody>
 </table>
로그인 후 복사

Javascript


<script id="property" type="text/x-jquery-tmpl">
 <tr><td>${ID}</td><td>${$data.Name}</td><td>${$item.getLangs(&#39;; &#39;)}</td></tr> </script>
<script type="text/javascript">
  $(function () {
  var userLangs = [{ ID: &#39;hao1&#39;, Name: &#39;Tony&#39;, Langs: [&#39;PHP&#39;, &#39;Python&#39;] }, { ID: &#39;hao2&#39;, Name: &#39;Mary hui&#39;, Langs: [&#39;Java&#39;, &#39;C#&#39;]}];
  $(&#39;#property&#39;).tmpl(userLangs, {
   getLangs: function (separator) {
    return this.data.Langs.join(separator);
   }
   }).appendTo(&#39;#propertyRows&#39;);
  });
</script>
로그인 후 복사

{{each}}루핑에 사용되는 태그임을 한눈에 알 수 있습니다. (Keywords{ {each Array }}, $value, $index)

HTML


<ul id="ul_each"></ul>
로그인 후 복사

Javascript


<script id="eachList" type="text/x-jquery-tmpl">
 <li class="li">
 <span class="a">ID: ${ID};</span>
 <span class="b">Name: ${Name};</span><br/>
 <span class="c">Langs:
  <ul>
  {{each Langs}}
   <li>
   ${$index + 1}:${$value}.
   </li>
  {{/each}}
  </ul>
 </span>
 </li>
</script>
<script type="text/javascript">
 $(function () {
 var userLangs = [{ ID: &#39;hao1&#39;, Name: &#39;Tony&#39;, Langs: [&#39;PHP&#39;, &#39;Python&#39;] }, { ID: &#39;hao2&#39;, Name: &#39;Mary hui&#39;, Langs: [&#39;Java&#39;, &#39;C#&#39;]}];
 $(&#39;#eachList&#39;).tmpl(userLangs).appendTo(&#39;#ul_each&#39;);
 });
</script>
로그인 후 복사

효과는 다음과 같습니다

{{each}} 또 다른 작성 방법이 있습니다 :

Javascript


<script id="eachList2" type="text/x-jquery-tmpl">
 <li class="li">
 <span class="a">ID: ${ID};</span>
 <span class="b">Name: ${Name};</span><br/>
 <span class="c">Langs:
  <ul>
  {{each(i,lang) Langs}}
   <li>
   ${i+1}:${lang}
   </li>
  {{/each}}
  </ul>
 </span>
 </li>
</script>
로그인 후 복사

기능은 이전과 동일합니다.

{{if}} 및 {{else}}, 이 두 태그의 기능을 한 눈에 알 수 있습니다. 바로 예를 들어보겠습니다.

Javascript


<script id="ifelse" type="text/x-jquery-tmpl">
  <tr>
  <td>${ID}</td>
  <td>${Name}</td>
  <td>
   {{if Langs.length > 1}}
    ${Langs.join(&#39;; &#39;)}
   {{else}}
    ${Langs}
   {{/if}}
  </td>
 </tr>
</script>
로그인 후 복사

요소가 2개 이상인 경우 Langs 배열에서 ' ; 'Connect를 사용하면 Langs가 직접 표시됩니다.

{{html}}, 자리 표시자를 HTML 코드로 직접 대체합니다.

$.tmplItem() 메서드, 이 메서드를 사용하면 렌더링된 요소에서 $item을 검색할 수 있습니다. 예:


$(&#39;tbody&#39;).delegate(&#39;tr&#39;, &#39;click&#39;, function () {
 var item = $.tmplItem(this);
 alert(item.data.Name);
});
로그인 후 복사
효과는 다음과 같습니다.

관련 권장 사항:


템플릿을 사용하여 HTML을 생성하는 프레임워크인 jquery.tmpl을 사용합니다. 자세한 설명

jQuery는 json을 가져온 후 zy_tmpl을 사용하여 드롭다운 메뉴를 생성하고, jsonzy_tmpl_PHP tutorial

jQuery는 zy_tmpl을 사용하여 json을 가져온 후 드롭다운 메뉴를 생성합니다. json_PHP 튜토리얼

위 내용은 jquery tmpl 템플릿을 완전히 마스터하세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!