写前端代码的时候,html拼接真的很繁琐,还不好看。
以前用过一个不错的js 的dot模板:官网链接
最近找到一个网上推荐的jq插件jquery的开源链接,感觉也不错(主要是标签少)
jquery-tmpl常用标签
${}, {{each}}, {{if}}, {{else}}, {{html}}
不常用标签
{{=}},{{tmpl}} and {{wrap}}.
部分标签解释
${}等同与{{=}}是输出变量 ${}里面还可以放表达式 (使用{{=}}的时候=和变量之间一定要有空格,否则无效,即为:{{= 变量}})
{{each}} 提供循环逻辑,$value访问迭代变量 也可以自定义迭代变量(i,value)
{{if }} {{else}}提供了分支逻辑相当于else if
laravel Blade & JavaScript 框架
由于很多 JavaScript 框架也是用花括号来表示要显示在浏览器中的表达式,可以使用 @ 符号来告诉 Blade 渲染引擎该表达式应该保持原生格式不作改动。比如:
<h1>Laravel</h1>
Hello, @{{ name }}.
在本例中,@ 符将会被 Blade 移除,但是,{{ name }}表达式将会保持不变,避免被 JavaScript 框架渲染。
详情见[ Laravel 5.4 文档 ] 前端 —— Blade模板
个人例子
- 在标签前面加上 @
- ${ } 这个标签前面可以不用加 @
<div id="demo-box"></div>
<script type="text/x-jquery-tmpl" id="demo">
<div>
<div></div>
<img src="@{{= img}}" alt="">
<div>
<p>${name}</p>
@{{if age}}
<p>${age}</p>
@{{/if}}
</div>
<div>
<table>
<tbody>
@{{each(key,content) info}}
<tr>
<td>${key}</td>
<td>${content}</td>
</tr>
@{{/each}}
</tbody>
</table>
</div>
</div>
</script>
<script>
$(function(){
var infos = ['img':'img_url','name':'name','info':[{'key':content}]];
$("#demo").tmpl(infos).appendTo('#demo-box');
})
</script>