django之js模板插件artTemplate的使用


安裝:

  方式1:artTemplate模板源碼下載地址:https://aui.github.io/art-template/zh-cn/index.html

  方式2:使用node.js進行安裝:npm install art-template --save -dev

文檔:

  artTemplate 中文API文檔地址:https://aui.github.io/art-template/zh-cn/docs/syntax.html#%E8%BF%87%E6%BB%A4%E5%99%A8

問:為什么要使用artTemplate模板?不是有django模板嗎?

答:為了實現動態加載,因為有時候不想刷新整個頁面,只在局部增加內容,則需要使用 artTemplate 模板 與 ajax 配合了

使用:介紹模板使用 與 自定義過濾器,其他參考 官方API文檔

一、art-Template在Django模板中的簡單使用:

 1. 前端html代碼

<!-- verbatim:為了解決django模板與art模板的沖突Django不會渲染 {% verbatim %}{% endverbatim %} 標簽包裹的內容,
如果不使用改標簽則會發生錯誤:django無法解析模板
--> <scripts type="text/html" id="test-item" > {% verbatim %} <!-- each是循環變量:遍歷對象,遍歷的值,遍歷的下標 --> {{each target value index}}
       <li>
        <!-- 可以在取值的時候增加前綴:$ --> <!--<p>{{$index}} | {{$value}} |{{value.name}} -->
        <!-- 可以通過 value.key 的方式得到對象中的值 --> 
         <p>索引:{{index}} | 姓名:{{value.username}} | 年齡:{{value.age}} | 愛好:{{value.hobby.bobby1}}</p>
       </li> {{/each}} {% endverbatim %} </script>
<body>
  <ul id="test-artTemplate>
    <li>這是初始的li標簽</li>
  </ul>
  <!-- 點擊按鈕增加一個li標簽 -->
  <button id="add-li-btn">增加li標簽</button>
</body>

    2. js代碼: 

// 導入 jquery

$(function(){ 
// 為 id 為 "add-li-btn" 的按鈕注冊 點擊 事件 $(
"add-li-btn").click(function(){
    // 制作一個 data 數據
    var data = [
      {'username':'ljx','age':20,'hobby':['hobby1','hobby2','hobby3']},
      {
{'username':'lxl','age':40,'hobby':['hobby1','hobby2','hobby3']   
    }]
    // 渲染 id 為 test-item 的 artTemplate 模板:Template('id',{'對象名':'數據'})
    // 對象名要與模板中定義的一致
    var addli_html = Template('test-item',{'target':data});  
       $(test-artTemplate).append(addli_html) // 將渲染的模板代碼追加到 id 為 test-artTemplate 的元素中
   });
});

  輸出結果:

<ul>
  <li>這是初始的li標簽</li>
  <li>索引:0, | 姓名:ljx | 年齡:20 | 愛好:bobby1</li>
  <li>索引:1, | 姓名:lxl | 年齡:40 | 愛好:bobby1</li>
</ul>

 

 二、art-template 中的過濾器:

  1. 注冊過濾器:

<script type="text/JavaScript">  
  // data:接收一個值,然后在過濾器中進行處理后返回一個值   template.defaults.imports.過濾器名稱 = function(data){   過濾器的內容   一定要注意 需要一個返回值   }; </script>

 

  2. 使用案例

    js代碼:

<script type="text/JavaScript">
  // 注冊一個名為:time_filter 的過濾器
$(function(){
    template.defaults.imports.Multiplying_filter = function(index){
    return index * 10
  }
});
$(function(){
  
var add_html = Template('test-item',{'target':{'index',10}});
  $("test-template-filter").append(add_html);
});
  
</script>

 

    html代碼:

<body>
<script type="text/html" id="test-item">
  // 將 {{index}} 這個值傳給過濾器:Multiplying_filter ,進行處理之后返回一個新的值
  <p>{{index}} * 10的結果是:{{index|Multiplying_filter}}</p>
</script>
<div id="test-template-filter">
</div>
</body>

 

        輸出結果:10 * 10的結果是:100

 

  When you want to grow up, you will always arrange some people or things that irritate you.

  命運要你成長的時候,總會安排一些讓你不順心的人或事刺激你

  

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM