首頁 web前端 js教程 JsRender for index迴圈索引用法詳解

JsRender for index迴圈索引用法詳解

May 16, 2016 pm 04:32 PM
for index 循環 用法 索引

本文實例講述了JsRender for index循環索引用。分享給大家供大家參考。具體分析如下:

JsRedner和JsViews(JsViews是再JsRender基礎上的進一步封裝)被稱為下一代的Jquery模板,官方地址:

https://github .com/BorisMoore/jsrender;
https://github.com/BorisMoore/jsviews

循環是模版引擎必不可少的一部分,而說起循環,會引出一個至關重要的因素:索引。

所謂索引,即循環次數,透過索引,可以取得目前循環是第幾次。

如果讀者閱讀過官方文檔,會見到以下取得索引的方式:

data:

{
   names: ["Maradona","Pele","Ronaldo","Messi"]
}
登入後複製

template markup:

{{for names}}

{{: #index+1}}.
{{: #data}}

{{/for}}
登入後複製
template markup:

1. Maradona
2. Pele
3. Ronaldo
4. Mess
登入後複製
result:

索引可以在循環中通過特殊字面量#index獲取,特殊字面量#data相當於this,在本例中表示每一個name 。

接下來我們搞點小花樣,還是上邊的例子,只不過這次我希望只顯示以M開頭的名字:
{
 names: ["Maradona","Pele","Ronaldo","Messi"]
}
登入後複製
登入後複製

data:

{{for names}}
   {{if #data.indexOf("M") == 0}}
    

       {{: #index+1}}.
       {{: #data}}
    

   {{/if}}
 {{/for}}
登入後複製

template markup:

Unavailable (nested view): use #getIndex()1. Maradona
Unavailable (nested view): use #getIndex()1. Messi
登入後複製
result:

簡單加了if判斷,竟然報錯了!

問題就出在#index上,錯誤提示很明確,讓你用#getIndex()代替#index。

試試替換後的程式碼:
{
 names: ["Maradona","Pele","Ronaldo","Messi"]
}
登入後複製
登入後複製

data:

{{for names}}
   {{if #data.indexOf("M") == 0}}
    
       {{: #getIndex()+1}}.
       {{: #data}}
    

   {{/if}}
 {{/for}}
登入後複製

template markup:

1. Maradona
4. Messi
登入後複製

result:

result:

result:result:result: 這是為什麼呢?簡單說,就是因為{{if }}雖然不建立常規資料作用域,但卻幹擾了隱藏作用域。也就是說,{{if }}不會阻斷常規資料(你傳入的資料)的可見性,但會幹擾隱藏資料(#index、#parent)的可見性。這樣簡單理解就可以了,不必深究,因為這只是這個框架的缺陷,並不是標準。 因此,本文給讀者一個很重要的結論:盡量使用#getIndex()取得索引,避免使用#index,除非你的應用夠簡單。 希望本章所述對大家JsRender的學習有所幫助,更多相關教程請訪問jQuery視頻教程!
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
兩個點博物館:所有展覽以及在哪裡可以找到它們
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
兩個點博物館:所有展覽以及在哪裡可以找到它們
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

index.html是什麼文件? index.html是什麼文件? Feb 19, 2024 pm 01:36 PM

index.html是什麼文件?

解決kernel_security_check_failure藍色畫面的17種方法 解決kernel_security_check_failure藍色畫面的17種方法 Feb 12, 2024 pm 08:51 PM

解決kernel_security_check_failure藍色畫面的17種方法

解析JSP註解的使用方法和分類 解析JSP註解的使用方法和分類 Feb 01, 2024 am 08:01 AM

解析JSP註解的使用方法和分類

如何正確使用C語言的exit函數 如何正確使用C語言的exit函數 Feb 18, 2024 pm 03:40 PM

如何正確使用C語言的exit函數

Win10如何解除安裝Skype for Business?電腦上的skype怎麼徹底卸載方法 Win10如何解除安裝Skype for Business?電腦上的skype怎麼徹底卸載方法 Feb 13, 2024 pm 12:30 PM

Win10如何解除安裝Skype for Business?電腦上的skype怎麼徹底卸載方法

WPSdatedif函數的用法 WPSdatedif函數的用法 Feb 20, 2024 pm 10:27 PM

WPSdatedif函數的用法

MySQL ISNULL 函數詳解及用法介紹 MySQL ISNULL 函數詳解及用法介紹 Mar 01, 2024 pm 05:24 PM

MySQL ISNULL 函數詳解及用法介紹

使用蘋果快速指令的方法 使用蘋果快速指令的方法 Feb 18, 2024 pm 05:22 PM

使用蘋果快速指令的方法

See all articles