admin 管理员组

文章数量: 887016

freemarker

有一个需求是:在table中添加一个行,然后获取该行有一个隐藏的input,是自增的,所以获取当前的后台传递的list集合的size然后加一,一般就是js的增加子节点的操作,以前都是拼接字符串然后往里面新增变量,还一种前端的写法是使用模板字符串,但是跟目前的freemaker中${}冲突

模板字符串:

// 普通字符串
`In JavaScript '\n' is a line-feed.`// 多行字符串
`In JavaScript this is
not legal.`// 字符串中嵌入变量
var name = "Bob", time = "today";
`Hello ${name}, how are you ${time}?`   // Hello Bob, how are you today?

${}获取的时候会出现为空异常,它会获取后台传递过来的值,但是后台没有这个值,冲突无法解决

这样只能拼接字符串,拼接字符串比较麻烦,所以想到一个取巧的方法

首先一个字符串、然后将里面的变量替换,然后在编译该字符串,测试正常

代码如下:

// 	增加$('.add').click(function(){	var trsize = $(".uptable>tbody").children("tr").length-1;
// 		alert(trsize);$('.uptable input').attr("disabled",false)		$('#editluck').text('保存')var index =Number($(this).context.getAttribute('id'))+1;
// 		alert(index)if(trsize == index){var str = '<tr class=""><td><input type="text"   value="index"  style="display:none"/>'+'</td><td><span>彩金数字index:</span><input type="text"  value=""/></td>'+'<td><span>奖励金额:</span><input type="text"  value=""/></td></tr>'var newstr = str.replace('index',index).replace('index',index);// 		alert(index);// 		alert(newstr);$('.btns').before(newstr);}else{layui.use('layer', function(){var layer = layui.layer;	  layer.alert('请先保存!', {icon: 1});});  }})

目前测试正常,可能投机取巧了,只是放上来记录一下。

本文标签: freemarker