Kendo UI開發教程:Kendo UI模板概述

2019獨角獸企業重金招聘Python工程師標準>>> hot3.png

Kendo UI框架提供了一個易用,高性能的JavaScript模板引擎。通過模板可以創建一個HTML片段然后可以和JavaScript數據合并成最終的HTML元素。Kendo 模板側重于UI顯示,支持關鍵的模板功能,著重于性能而不是語法上的方便。

模板語法

Kendo模板使用了一種稱為“#”的語法形式,使用這種語法,#用來表明模板中的某個部分可以使用JavaScript數據來替代。

用三種方式使用#語法:

  1. 顯示字面量 #=#
  2. 顯示HTML元素 #:#
  3. 執行任意的Javascript代碼 ?#if() {# ?#}#

注意:如何你的模板中包含有“#”字符,不是用來綁定的部分,你必須使用轉義字符,否則會引起模板編譯錯誤。 你可以通過“\\#?轉義需要顯示“#”的地方。

顯示原始數據

顯示數據的本來的形式是使用模板的一個最基本的用法,使用Kendo UI模板,可以使用如下類似的代碼:

1

var template = kendo.template(“<div id="’box’">#= firstName #</div>”)

上面代碼創建了“編譯”過的嵌入式模板,使用這個模板可以用來顯示數據,比如下面的代碼:

1

2

3

4

5

6

7

<div id="“example”"></div>

<script>

var template = kendo.template(“<div id=’box’>#= firstName #</div>”);

var data = { firstName: “Todd” }; //A value in JavaScript/JSON

var result = template(data); /Pass the data to the compiled template

$(“#example”).html(result); //display the result

</script>

通過模板與數據的合并,最終顯示“Todd”。

顯示HTML數據

如果你需要顯示經過HTML編碼過的數據,使用Kendo UI模板可以自動處理這些編碼過的HTML元素,但需要使用不同的語法 #: ?#,例如:

1

var template = kendo.template(“<div id="’box’">#: firstName #</div>”);

完整的示例如下:

1

2

3

4

5

6

7

<div id="“example”"></div>

<script>

var template = kendo.template(“<div id=’box’>#: firstName #</div>”);

var data = { firstName: “<b>Todd</b>” }; //Data with HTML tags

var result = template(data); //Pass the data to the compiled template

$(“#example”).html(result); //display the resulting encoded HTML Output (<b>Todd</b>)

</script>

這個例子的顯示結果為:

1

<b>Todd </b>

而不是?Todd,如果需要顯示Todd?,則需要使用#= # 語法,顯示HTML編碼的一個主要作用是當你無需再模板中顯示HTML標記,而是把整個標記和其內容作為字符串顯示出來。

使用外部模板和表達式

在模板中也可以使用表達式,Kendo UI 支持者模板中執行JavaScript代碼,在模板中使用JavaScript代碼的方法是在JavaScript語句的前后加上#,比如下面模板顯示一組列表:

1

2

3

4

5

6

7

<script id="“javascriptTemplate”" type="“text/x-kendo-template”">

<ul>

# for (var i = 0; i <?data.length; i++) { #

<li>#= data[i] #</li>

# } #

</ul>

</script>

然后為了使用這個模板,可以通過模板的id ,通過kendo.template 創建這個模板,然后和數據合并,比如:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

<div id="“example”"></div>

?

<script id="“javascriptTemplate”" type="“text/x-kendo-template”">

<ul>

# for (var i = 0; i <?data.length; i++) { #

<li>#= data[i] #</li>

# } #

</ul>

</script>

?

<script type="“text/javascript”">

//Get the external template definition using a jQuery selector

var template = kendo.template($(“#javascriptTemplate”).html());

?

//Create some dummy data

var data = [“Todd”, “Steve”, “Burke”];

?

var result = template(data); //Execute the template

$(“#example”).html(result); //Append the result

</script>

可以看到模板執行了JavaScipt的for 循環,并且我們使用了外部模板,外部模板的定義使用type=?text/x-kendo-template?來定義,并通過其id來訪問這個外表模板。

在模板中也可以定義變量,使用這個自定義變量的方法和使用字面量的方法類似。比如定義一個變量myCustomVariable:

1

2

3

4

5

6

<script id="“javascriptTemplate”" type="“text/x-kendo-template”">

# var myCustomVariable = “foo”; #

<p>

#= myCustomVariable #

</p>

</script>

嵌入式模板 vs 外部模板

Kendo UI 模板可以使用嵌入式模板和外部模板:

  • inline: 使用JavaScript字符串定義
  • external: 使用HTML Script塊定義

本文轉載自Kendo UI中文網

轉載于:https://my.oschina.net/u/2317468/blog/785986

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/457634.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/457634.shtml
英文地址,請注明出處:http://en.pswp.cn/news/457634.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

JS_13原型與原型鏈

原型與原型鏈 原型 每一個函數都有一個屬性&#xff1a;prototype,默認指向object空對象&#xff0c;就是原型對象,原型對象有一個constructor屬性&#xff0c;指向函數對象每一個實例化對象都有一個屬性 proto ,默認指向構造函數的原型對象&#xff08;是構造函數原型對象的…

ajax數據保存及解析

1. $(#frmCam).serialize()&#xff1b;serialize() 方法通過序列化表單值&#xff0c;創建 URL 編碼文本字符串。 2.自動對應ID和值 window.camConfig [<%(camConfig) %>]; if (camConfig.length>0) { for(var property in cam…

python和revit_pyRevit系列教程1

有沒有人和我一樣&#xff0c;想要自己寫一些小功能來用(zhuang)用(bi)&#xff0c;但苦于C#太難學了&#xff0c;不得不作罷。話說感受過Python的美好&#xff0c;怎么能忍受C#的大括號&#xff01;畢竟人生苦短&#xff0c;我用Python&#xff01;好吧&#xff0c;我承認是我…

【leetcode】104. Maximum Depth of Binary Tree

1. 題目 Given a binary tree, find its maximum depth. The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node. 2. 思路 遞歸到左、右子樹的max值&#xff0c;1. 3. 代碼 /*** Definition for a binary tree …

JS_14 執行上下文與執行上下文棧

執行上下文和執行上下文棧 變量提升和函數提升 變量提升 所用使用var定義的變量&#xff0c;在程序運行前會被先定義&#xff0c;并賦初值為underfind&#xff0c;保存到其執行上下文中 函數提升 在調用函數&#xff0c;執行函數體之前&#xff0c;會先執行函數定義&#xff…

shell編程-變量

1.Bash用戶自定義變量 【局部變量】 【按數據存儲分類】&#xff1a;整型、浮點型、字符串型、日期型 【變量定義】&#xff1a;x5,y6,z$x$y56,m$(($x$y))11 【Bash變量默認都為字符串型&#xff0c;等號左右不可以有空格】 【變量疊加】&#xff1a;x"$x"123,x${x}3…

JS_15作用域與作用域鏈

作用域與作用域鏈 作用域 類別 全局作用域函數作用域塊作用域&#xff1a;Es6時出現&#xff0c;之前沒有 作用域與執行上下文 區別 創建時機不同 全局作用域外&#xff0c;每個函數都有自己的作用域&#xff0c;作用域在函數創建時就創建了&#xff0c;而不是在調用時全局執…

多線程調用同一個對象的方法_多線程之如何創建和使用線程

一、創建線程和使用線程方式1.1 繼承Thread讓線程類繼承自Thread類&#xff0c;然后重寫run()&#xff0c;把需要多線程調用的代碼放到run()中。但是需要開啟線程的時候不能調用run方法&#xff0c;而是需要調用start()方法。/*** 本類用于演示第一種實現多線程的方式*/ class…

struts2的namespace的問題

<?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> <struts> <inc…

JS_16閉包

閉包 什么是閉包 理解1&#xff1a;閉包是嵌套的內部函數理解2&#xff1a;閉包是包含被引用變量&#xff08;函數&#xff09;的對象 閉包產生的條件 函數嵌套子函數調用了父函數的數據父函數被調用了&#xff08;子函數不一定需要被調用&#xff0c;只需要執行函數定義即可&…

[Intel Edison開發板] 02、Edison開發板入門

一、前言 Start from the link: 開始學習的鏈接 上面鏈接是官網的教程&#xff0c;按照教程可以開發板入門&#xff1a; 其中第一步是了解開發板&#xff0c;涉及到如何組裝、如何連線、一些主要的接口簡單介紹等信息&#xff1b;第二步主要是介紹如何用官方提供的工具進行配置…

python apscheduler一次只有一個job_Python使用APScheduler實現定時任務過程解析

前言APScheduler是基于Quartz的一個Python定時任務框架。提供了基于日期、固定時間間隔以及crontab類型的任務&#xff0c;并且可以持久化任務。一、安裝APSchedulerpip install apscheduler二、基本概念APScheduler有四大組件&#xff1a;1、觸發器 triggers &#xff1a;觸發…

java web service簡單示例

http://www.iteye.com/topic/1135747 轉載于:https://www.cnblogs.com/fycct/p/5669420.html

shell統計指定目錄下所有文件類型及數量

#!/bin/bash#Synopsis:用于統計腳本當前所在目錄或者用戶指定目錄下的所有文件類型及數量#若直接運行腳本而不接任何命令行參數,則默認會統計腳本所在目錄下的文件#Date:2016/10#Author:Jian#Usage:sh fileStat.sh /path1 /path2testFile$(mktemp /tmp/testfile.XXX)#如果沒有指…

python cross val score_sklearn函數:cross_val_score(交叉驗證評分)

sklearn.model_selection.cross_val_score(estimator,X,yNone,*,groupsNone,scoringNone,cvNone,n_jobsNone,verbose0,fit_paramsNone,pre_dispatch2*n_jobs,error_scorenan)前面我們提到了4種分割數據集的方法&#xff0c;在分割完數據集后&#xff0c;我們訓練模型&#xff0…

JS_17 ES5,ES6

ES5 嚴格模式 定義方法 use strict特性&#xff1a; 必須使用var定義變量存在eval作用域禁止自定義函數中的this指向window對象不能有重名屬性 JSON對象 json.stringify(obj/arr):js對象轉換為json對象json.parse(str):json對象轉換為js對象 Object拓展 Object.create(p…

幾種純css布局的導航欄

1.垂直導航欄 頁面效果 <ul class"nav"><li><a href"home.htm">Home</a></li><li><a href"about.htm">About</a></li><li><a href"services.htm">Services</a&…

python中函數的參數傳遞(傳值還是傳引用)

函數的參數傳遞 函數參數傳遞有兩種方式&#xff0c;傳值和傳引用&#xff0c;傳值只是把變量的值復制一份給了實參&#xff0c;函數內部的操作不會改變函數外部變量的值&#xff0c;而傳引用傳遞的是外部變量的地址&#xff0c;函數內部直接操作函數外部變量的儲存空間&#…

poi獲取有效單元格個數_EXCEL利用SUM函數和FREQUENCY函數數組公式統計不同區間數據個數...

EXCEL函數公式大全之利用FREQUENCY函數數組公式統計不同區間數據個數。EXCEL函數與公式在工作中使用非常的頻繁&#xff0c;會不會使用公式直接決定了我們的工作效率&#xff0c;今天我們來學習一下提高我們工作效率的函數FREQUENCY函數和數組公式。今天我們的例子是統計學生在…

windows安裝rsync

客戶端&#xff1a;cwRsync 4.0.5 Installer服務端&#xff1a;cwRsyncServer 4.0.5 Installer 安裝配置Rsync服務端 1.直接雙擊安裝包安裝即可&#xff0c;在安裝過程中會有要求用戶輸入賬戶密碼或者使用默認。此賬戶是rsync服務運行的用戶。 2.安裝完成之后&#xff0c;進入程…