this.tpl = '<li class="text-list">\ <a class="text-list-info" target="{{target}}" href="' + (this.url ? this.url + '?guid={{guid}}' : 'javascript:;') + '">\ <p class="name" title="{{name}}">{{name}}</p>\ <ul class="info-items">\ <li class="info-item">文件文号:<span title="{{file}}">{{file}}</span></li>\ <li class="info-item">所属部门:<span title="{{depart}}">{{depart}}</span></li>\ <li class="info-item"><p class="infor-name">发布时间:<span title="{{date}}">{{date}}</span></p></li>\ <li class="info-item">政策主题:<span title="{{theme}}">{{theme}}</span></li>\ <li class="info-item">行业范围:<span title="{{trade}}">{{trade}}</span></li>\ </ul>\ </a>\ <a class="text-list-btn" href="javascript:;"><span>咨询</span></a>\ </li>'; 封装juqery组件,这个模板目前是固定几个,现在想把这个做成可配置的,比如用户配置:{name:'文件文号:',fieldName:'file'},就能生成这一行
时间: 2024-02-04 10:01:59 浏览: 66
的 HTML 代码。
我的建议是,你可以将这个模板字符串中的固定文本部分提取出来,然后将可配置的部分作为变量插入到模板字符串中。比如,可以将固定文本部分提取成如下形式:
```
const tplPrefix = '<li class="text-list"><a class="text-list-info" target="{{target}}" href="{{url}}"><p class="name" title="{{name}}">{{name}}</p><ul class="info-items">';
const tplSuffix = '</ul></a><a class="text-list-btn" href="javascript:;"><span>咨询</span></a></li>';
```
然后,你可以将用户配置的内容转化成一个对象,比如:
```
const config = {
file: {name: '文件文号:', fieldName: 'file'},
depart: {name: '所属部门:', fieldName: 'depart'},
date: {name: '发布时间:', fieldName: 'date'},
theme: {name: '政策主题:', fieldName: 'theme'},
trade: {name: '行业范围:', fieldName: 'trade'}
};
```
最后,你可以通过遍历用户配置的对象,来生成可配置部分的 HTML 代码。代码示例如下:
```
let tplConfigurable = '';
for (const key in config) {
tplConfigurable += `<li class="info-item">${config[key].name}<span title="{{${config[key].fieldName}}}">{{${config[key].fieldName}}}</span></li>`;
}
const tpl = tplPrefix + tplConfigurable + tplSuffix;
```
这样,你就可以根据用户配置来生成不同的 HTML 代码了。
阅读全文