翻譯|行業資訊|編輯:龔雪|2022-10-26 11:07:47.730|閱讀 155 次
概述:本文主要介紹DevExtreme為實現和應用模板提供的功能,歡迎下載相關組件立即體驗!
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
DevExtreme擁有高性能的HTML5 / JavaScript小部件集合,使您可以利用現代Web開發堆棧(包括React,Angular,ASP.NET Core,jQuery,Knockout等)構建交互式的Web應用程序,該套件附帶功能齊全的數據網格、交互式圖表小部件、數據編輯器等。
模板允許您自定義DevExtreme UI組件,本文概述DevExtreme為實現和應用模板提供的功能。
默認模板基于數據源字段,可以通過從數據源對象中添加或刪除特定字段來控制外觀。例如,List UI組件項的默認模板包含文本、可見和禁用字段等,如果您將以下數組分配給UI組件項或dataSource屬性,第一項將被禁用,第二項將被隱藏,它們都將有文本,而第三項將呈現自定義標記:
JavaScript
function customMarkup() { var d = document.createElement("div"); d.innerHTML = "<i>Oranges</i>"; return d; } var fruits = [ { text: "Apples", disabled: true }, { text: "Lemons", visible: false }, { template: customMarkup } ];
您可以使用支持默認模板和自定義模板的dxItem組件在標記中實現同樣的效果,在這種情況下,不要設置UI組件的dataSource屬性。
HTML
<div id="list"> <div data-options="dxItem: { text: 'Apples', disabled: true }"></div> <div data-options="dxItem: { text: 'Lemons', visible: false }"></div> <div data-options="dxItem: { }"> <i>Oranges</i> </div> </div>
JavaScript
$(function() { $("#list").dxList({/* ... */}); });
默認模板和其中可用的字段取決于UI組件。
模板作為屬性傳遞,其結尾是...Template(在jQuery, Angular,Vue中)或...Render/...Component (在React中)。
每個模板都可以訪問以下參數:
下面的代碼展示了如何聲明模板并使用這些參數,段代碼為List UI組件聲明了一個itemTemplate:
index.js
$(function() { $("#listContainer").dxList({ items: [ { itemProperty: "someValue" }, // ... ], itemTemplate: function (data, index, element) { return index + " - " + data.itemProperty; // ===== or using the "element" parameter ===== const $item = $("<div>").text( index + " - " + data.itemProperty ); element.append($item); } }); });
注意:在組件的標記內,但在模板元素之外聲明命名模板,非命名模板應該在模板元素中聲明。
集合UI組件還支持單個項的模板,如果使用單獨的模板,不要指定UI組件的dataSource屬性。
index.js
$(function() { $("#listContainer").dxList({ items: [{ template: function () { return $("<i>").text("Item 1") } }, { template: function () { return $("<b>").text("Item 2") } },{ template: function () { return $("<div>").append( $("<span>").text("Item with nested component"), $("<div>").dxButton({ text: "Click me" }) ) } }] }); });
可以使用第三方模板引擎,但只能使用jQuery. DevExtreme支持以下開箱即用的模板引擎:
要使用其中一個,將它的名稱傳遞給方法:
HTML
<div id="list"></div> <script type="text/html" id="itemTemplate"> <!-- your Underscore template --> </script>
JavaScript
DevExpress.setTemplateEngine("underscore"); $(function() { $("#list").dxList({ // ... itemTemplate: $("#itemTemplate") }); })
還可以使用其他模板引擎,但在本示例中需要實現編譯和呈現模板的函數,詳見 。
DevExpress技術交流群6:600715373 歡迎一起進群討論
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都網