zoukankan      html  css  js  c++  java
  • jQuery.tmpl.js

    1.这个插件挺好用的,可以用它来代替微软的gridview,前提是您用了asp.net mvc模式开发
    下面是找到的一些英文资料,大家可以参考下

    网址如下:

    http://api.jquery.com/category/plugins/templates/

    jQuery.tmpl( template, [data,] [options] ) Returns: jQuery

    Description: Render the specified HTML content as a template, using the specified data.

    • version added: 1.4.3jQuery.tmpl( template, [data,] [options] )

      templateThe HTML markup or text to use as a template.

      dataThe data to render. This can be any JavaScript type, including Array or Object.

      optionsAn optional map of user-defined key-value pairs. Extends the tmplItem data structure, available to the template during rendering.

    This documentation topic concerns the jQuery Templates plugin (jquery-tmpl), which can be downloaded from: http://github.com/jquery/jquery-tmpl.

    The jQuery.tmpl() method is designed for chaining with .appendTo, .prependTo, .insertAfter or .insertBefore as in the following example.

    Example:

    $.tmpl( "<li>${Name}</li>", { "Name" : "John Doe" }).appendTo( "#target" );

    The template parameter can be any of the following:

    • A string containing markup.
    • An HTML element (or jQuery object that wraps an element) whose content is to be used as the template.
    • A string corresponding to the name of a named template (see jQuery.template() and .template()).
    • A compiled-template function (see jQuery.template() and .template()).

    If data is an array, the template is rendered once for each data item in the array. If data is an object, or if the data parameter is missing or null, a single template item is rendered.

    The return value is a jQuery collection of elements made up of the rendered template items (one for each data item in the array). If the template contains only one top-level element, then there will be one element for each data item in the array.

    To insert the rendered template items into the HTML DOM, the returned jQuery collection should not be inserted directly into the DOM, but should be chained with .appendTo, .prependTo, .insertAfter or .insertBefore, as in following example:

    $.tmpl( myTemplate, myData ).appendTo( "#target" );

    See also .tmpl().

    Example

    The following example shows how to use jQuery.tmpl() to render local data, using a template provided as a string:

    <ul id="movieList"></ul>
    
    <script type="text/javascript">
      var movies = [
          { Name: "The Red Violin", ReleaseYear: "1998" },
          { Name: "Eyes Wide Shut", ReleaseYear: "1999" },
          { Name: "The Inheritance", ReleaseYear: "1976" }
      ];
    
      var markup = "<li><b>${Name}</b> (${ReleaseYear})</li>";
    
      // Compile the markup as a named template
      $.template( "movieTemplate", markup );
    
      // Render the template with the movies data and insert
      // the rendered HTML under the "movieList" element
      $.tmpl( "movieTemplate", movies )
          .appendTo( "#movieList" );
    </script>
    

    Using Remote Data

    Typically the data is not local and is instead obtained using an Ajax request to a remote service or page, as in the following example:

    var markup = "<li><b>${Name}</b> (${ReleaseYear})</li>";
    
    // Compile the markup as a named template
    $.template( "movieTemplate", markup );
    
    $.ajax({
      dataType: "jsonp",
      url: moviesServiceUrl,
      jsonp: "$callback",
      success: showMovies
    });
    
    // Within the callback, use .tmpl() to render the data.
    function showMovies( data ) {
      // Render the template with the "movies" data and insert
      // the rendered HTML under the 'movieList' element
      $.tmpl( "movieTemplate", data )
        .appendTo( "#movieList" );
    }
    

    The Markup for the Template

    You can get the markup for the template from inline markup in the page, or from a string (possibly computed, or obtained remotely). For an example of how to use inline markup, see .tmpl().

    Caching the Template

    When a template is rendered, the markup is first converted into a compiled-template function. Every time $.tmpl( markup , myData ).appendTo( "#target" ) is called, the template is recompiled. If the same template is to be used more than once for rendering data, you should ensure that the compiled template is cached. To cache the template when using markup that is obtained from a string (rather than from inline markup in the page), use $.template( name, markup ) to create a named template for reuse. See jQuery.template().

    Template Tags, Expressions, and Template Variables

    Template tags such as the ${} tag can used within jQuery templates in addition to text and HTML markup to enable a number of scenarios such as composition of templates, iteration over hierarchical data, parameterization of template rendering, etc. Template tags can render content based on the values of data item fields or template variables such as $item (corresponding to the template item), as well as expressions and function calls. See the documentation topics for each template tag: ${}, {{each}}, {{if}}, {{else}}, {{html}}, {{tmpl}} and {{wrap}}.

    The options Parameter, and Template Items

    Each template item (the result of rendering a data item with the template) is associated with a tmplItem data structure, which can be accessed using jQuery.tmplItem() and .tmplItem(), or the $item template variable. Any fields or anonomyous methods passed in with the options parameter of jQuery.tmpl() will extend the tmplItem data structure, and so be available to the template as in the following example:

    var markup = "<li>Some content: ${$item.myMethod()}.<br/>" 
               + " More content: ${$item.myValue}.</li>";
    
    // Compile the markup as a named template
    $.template( "movieTemplate", markup );
    
    // Render the template with the movies data
    $.tmpl( "movieTemplate", movies,
      { 
          myValue: "somevalue", 
          myMethod: function() { 
              return "something";
          } 
      } 
    ).appendTo( "#movieList" );
    

    Examples:

    Example: Render local data using jQuery.tmpl().

    <!DOCTYPE html> 
    <html> 
    <head> 
      <script src="http://code.jquery.com/jquery-latest.min.js"></script> 
      <script src="http://ajax.microsoft.com/ajax/jquery.templates/beta1/jquery.tmpl.min.js"></script> 
    </head> 
    <body> 
       
    <ul id="movieList"></ul> 
     
    <script> 
      var movies = [ 
      { Name: "The Red Violin", ReleaseYear: "1998" }, 
      { Name: "Eyes Wide Shut", ReleaseYear: "1999" }, 
      { Name: "The Inheritance", ReleaseYear: "1976" } 
      ]; 
     
    var markup = "<li><b>${Name}</b> (${ReleaseYear})</li>"; 
     
    /* Compile the markup as a named template */ 
    $.template( "movieTemplate", markup ); 
     
    /* Render the template with the movies data and insert 
       the rendered HTML under the "movieList" element */ 
    $.tmpl( "movieTemplate", movies ) 
      .appendTo( "#movieList" ); 
    </script> 
     
    </body> 
    </html>

    Example: Render data from a remote service, using jQuery.tmpl().

    <!DOCTYPE html> 
    <html> 
    <head> 
      <script src="http://code.jquery.com/jquery-latest.min.js"></script> 
      <script src="http://ajax.microsoft.com/ajax/jquery.templates/beta1/jquery.tmpl.min.js"></script> 
    </head> 
    <body> 
       
    <button id="cartoonsBtn">Cartoons</button> 
    <button id="dramaBtn">Drama</button> 
     
    <ul id="movieList"></ul> 
     
    <script> 
    var markup = "<li><b>${Name}</b> (${ReleaseYear})</li>"; 
     
    /* Compile the markup as a named template */ 
    $.template( "movieTemplate", markup ); 
     
    function getMovies( genre, skip, top ) { 
      $.ajax({ 
        dataType: "jsonp", 
        url: "http://odata.netflix.com/Catalog/Genres('" + genre 
        + "')/Titles?$format=json&$skip=" 
        + skip + "&$top=" + top, 
        jsonp: "$callback", 
        success: function( data ) { 
          /* Get the movies array from the data */ 
          var movies = data.d; 
     
          /* Remove current set of movie template items */ 
          $( "#movieList" ).empty(); 
     
          /* Render the template items for each movie 
          and insert the template items into the "movieList" */ 
          $.tmpl( "movieTemplate", movies ) 
          .appendTo( "#movieList" ); 
        } 
      }); 
    } 
     
    $( "#cartoonsBtn" ).click( function() { 
      getMovies( "Cartoons", 0, 6 ); 
    }); 
     
    $( "#dramaBtn" ).click( function() { 
      getMovies( "Drama", 0, 6 ); 
    }); 
     
    </script> 
     
    </body> 
    </html>
  • 相关阅读:
    Cross-Site Scripting XSS 跨站攻击全攻略 分类: 系统架构 2015-07-08 12:25 21人阅读 评论(2) 收藏
    WAS集群:记一次Node Agent不活动问题解决过程
    Oracle RAC集群资料收集
    Linux使用 tar命令-g参数进行增量+差异备份、还原文件
    WAS7.0安装补丁升级程序无法替换文件 java/docs/autorun.inf解决办法
    Java程序员面试失败的5大原因
    Lemon OA第4篇:常用功能
    Lemon OA第3篇:核心功能
    Lemon OA第2篇:功能解析方法
    Activiti5小试牛刀demo流程
  • 原文地址:https://www.cnblogs.com/encounter/p/2188778.html
Copyright © 2011-2022 走看看