Title: 📦 模板引擎
Canonical: https://microi.net/doc/form-engine/model-engine.html
Page-Modified: 2026-10-12T10:49:46.000Z
Source: published HTML document body; page revision is not a capability verification date.
# 📦 模板引擎
用于处理最终渲染后的数据,如根据字段值显示不同颜色的背景
---
## 📌 介绍
模板引擎 目前应用在 表单属性 中的【表格 V8 模板引擎】、【表单 V8 模板引擎】:
[表格与表单模板引擎预览: https://file.microi.net/upload/img/csdn/ScreenShot_2026-01-11_120812_139.png]
---
## 💡 例子
注意
此处的 V8.Form 只能访问到【模块引擎】配置的【查询列】字段值,若查询列配置为空,则能访问所有字段值。 模板结果会经过 DOMPurify 净化,script、iframe、onclick/onerror 和 javascript: 等危险内容会被移除。业务文本和 URL 必须先转义;点击跳转使用 ,不要使用内联事件。
展开查看 JavaScript 代码(28 行)
js
```
var escapeHtml = function(value) {
return String(value == null ? '' : value)
.replace(/&/g, '&').replace(//g, '>')
.replace(/"/g, '"').replace(/'/g, ''');
};
//使用bootstrap样式
var value = V8.Form.Zhuangtai;
if(V8.IsNull(value)){
V8.Result = '';
}else{
var classStr = 'badge-primary';
if(value == '禁用'){
classStr = `badge-danger`;
}
else if(value == '未通过'){
classStr = `badge-warning`;
}
else if(value == '待审核'){
classStr = `badge-info`;
}
var html = `${escapeHtml(value)}`;
V8.Result = html;
}
//使用style
if(V8.Form.XuqiuLX == '合并'){
V8.Result = `${escapeHtml(V8.Form.XuqiuDDH)}`;//显示蓝色
}
else if(V8.Form.HebingID){
V8.Result = `${escapeHtml(V8.Form.XuqiuDDH)}`;//显示灰色
}else{
V8.Result = escapeHtml(V8.Form.XuqiuDDH);//默认
}
```
## 支持 bootstrap、element-ui样式
常用 bootstrap 样式:
[alt text: https://microi.net/doc/bootstrap.jpg]
html
```
Primary
Secondary
Success
Danger
Warning
Info
Light
Dark
```
## 单张图片列表显示
js
```
var escapeHtml = function(value) {
return String(value == null ? '' : value)
.replace(/&/g, '&').replace(//g, '>')
.replace(/"/g, '"').replace(/'/g, ''');
};
var html = '';
var fileServer = V8.SysConfig.FileServer;
if(!V8.IsNull(V8.Form.GongsiLOGO)){
var imageUrl = escapeHtml(fileServer + V8.Form.GongsiLOGO);
html = ``;
}
V8.Result = html;
```
## 多张图片列表显示
js
```
var escapeHtml = function(value) {
return String(value == null ? '' : value)
.replace(/&/g, '&').replace(//g, '>')
.replace(/"/g, '"').replace(/'/g, ''');
};
var html = '';
var fileServer = V8.SysConfig.FileServer;
if(!V8.IsNull(V8.Form.TupianMS) && V8.Form.TupianMS.indexOf('[')!=-1){
var TupianMS = JSON.parse(V8.Form.TupianMS)
TupianMS.forEach(item=>{
var imageUrl = escapeHtml(fileServer + item.Path);
html += `
`;
})
html = `