1.art-template模版引擎文档
art-template 是一个简约、超快的模板引擎
它支持两种模板语法:
- 标准语法
{{if user}}
<h2>{{user.name}}</h2>
{{/if}}
复制代码
- 原始语法
<% if (user) { %>
<h2><%= user.name %></h2>
<% } %>
复制代码
2.项目背景介绍
- 基于JQuery进行的开发引用的是art-template模版引擎
- 项目中需要引入内部公共组件(原因在此不宜过多赘述)
- 页面功能:
- 页面以弹窗形式展示
- 页面内选框可根据状态进行编辑 / 修改 / 保存等操作
- 选框内部可添加链接 / 图片 / 视频 / 文字等相关内容
3.input选框中插入视频后不能编辑/删除操作
-
解决方案:
- 在模版引擎中对渲染的内容进行处理
- 对渲染的字符串进行判断是否包含video标签
- 判断video标签后是否有其他内容
- 如video标签后无内容的话则填入
<br>
标签字段
-
代码如下
<% var ans = answers[j].answer %>
<% var indexVal = ans.indexOf("</video>") %>
<% var sliceLen = ans.slice(indexVal+8).length %>
<% var boolAnsVal = (indexVal !== -1) && (sliceLen === 4) ? ans.slice(0,indexVal+8)+'<br>' : ans %>
<div class="<%= 'audit-detail-item-content audit-answer-box ' + redColorFun %>">
<div contenteditable="<%= params.statusNum === 0 ? true : false %>" data-dom="audit-detail-edit" data-id="<%= answers[j].id %>" data-tagid="<%= answers[j].answerTagId %>" class="<%= 'audit-answer-con-text ' + editInput %>">
<%- boolAnsVal %>
</div>
</div>
复制代码
- 效果如图
4.问题总结
- 其实这只是一个亡羊补牢的办法
- 正确方法应该及时调整引用公用组件(因为一些原因此方法不可行顾不在此赘述)