artTemplate模板引擎的簡單實用
阿新 • • 發佈:2019-01-06
雖說現在多數公司都是用
MV*
框架做專案,資料驅動檢視更新,Dom操作部分就不需要太在意,只管邏輯部分。就在今天2018.6.26日,這是有一個 特別的日子 ,因為我我….不說了!說一下我哪個美麗又可愛的朋友問我jq裡怎麼用模板引擎,所以我就寫個demo給她,雖說自己也是渣渣,但是能幫到她就挺好的,所以我想既然都demo都寫了,就發個部落格記錄一下,看有沒有人恰巧有用,點上一讚足以讓我開心的像200斤的孩子了。這裡我就給他推薦art-template
,為啥呢?因為官方吹的牛逼,哈哈哈!有種捨我其誰之勢,所以就選擇了他。如下圖:
裡面有詳細的介紹,我這裡就簡單的用script標籤引入的方法做個小小demo。不扯這麼多沒用的,程式碼如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>artTemplate</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- <link rel="stylesheet" type="text/css" media="screen" href="main.css" /> -->
<script src="./template-web.js"></script>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
ul li {
list-style: none;
}
.top {
height: 100px;
width: 100%;
box-sizing : border-box;
border-bottom: 1px solid #ccc;
color: #333;
}
.right {
width: 72%;
float: right;
margin-top: 20px;
margin-right: 5px;
}
/* 圖片 */
.top_left {
display: inline-block;
width: 22%;
margin-top: 20px;
}
.top .top_left .imgs {
display: inline-block;
width: 100%;
height: 98%;
text-align: center;
}
.top .top_left .imgs img {
width: 60px;
line-height: 60px;
float: right;
}
.top .top_center {
display: inline-block;
width: 45%;
}
.top .top_right {
display: inline-block;
width: 50%;
}
.top .top_bottom {
display: inline-block;
width: 50%;
text-align: center;
color: #333;
}
.top .top_bottom a {
width: 32px;
height: 40px;
}
.top .top_bottom a img {
width: 32px;
}
.right ul li {
margin-bottom: 10px;
}
.top_center ul li:nth-child(1) {
font-weight: bold;
}
.date_time {
margin: 15px 15px 0 15px;
color: #333;
}
.date_time ul li {
margin: 15px 0;
}
.judge {
margin: 0 15px 0 15px;
color: #333;
}
.judge p {
margin: 15px 0;
}
.border {
height: 5px;
background-color: #F6F6F6;
}
.bottom {
margin: 15px 15px 0 15px;
color: #333;
}
/* 輸入框 */
textarea {
width: 100%;
height: 70px;
margin-top: 10px;
padding: 8px;
font-size: 14px;
}
.consent {
width: 100%;
margin-top: 35px;
}
.consent_lf {
display: inline-block;
width: 49%;
text-align: center;
}
.consent_rg {
display: inline-block;
width: 49%;
text-align: center;
}
.consent_left {
width: 130px;
height: 40px;
border-radius: 20px;
border: none;
background-color: #FF5E5E;
color: #fff;
font-size: 16px;
}
.consent_right {
width: 130px;
height: 40px;
border-radius: 20px;
border: none;
background-color: #00BA86;
color: #fff;
font-size: 16px;
}
.bottom_span {
display: inline-block;
width: 100%;
padding: 10px 0;
margin-top: 10px;
background-color: #EEE;
padding-left: 10px;
}
.height {
height: 50px;
width: 100%;
}
</style>
</head>
<body>
<!-- 這裡就是用在模板引擎的父容器 -->
<div id="content"></div>
<!-- 這裡就是模板 -->
<script id="test" type="text/html">
<div class="top">
<div class="top_left">
<span class="imgs">
<span class=""></span>
<img src="{{avator}}" alt="">
</span>
</div>
<div class="right">
<div class="top_center">
<ul>
<li>{{teacherName}}</li>
<li>{{zhiye}}</li>
</ul>
</div>
<div class="top_bottom">
<a tel="18875639854">
<img src="{{avator}}" alt="">
</a>
<p>聯絡TA</p>
</div>
</div>
</div>
<div class="date_time">
<ul>
<li>是否有調班物件: {{if isTb}}<span>是</span> {{else if !isTb}}<span>否</span>{{/if}}
</li>
<li>開始時間:
<span>{{start_time}}</span>
</li>
<li>結束時間:
<span>{{end_time}}</span>
</li>
<li>請假時長:
<span>{{day}}天</span>
</li>
<li>請假事由:
<span>{{yuanyin}}</span>
</li>
</ul>
</div>
<!-- 有調班物件時judge這個隱藏 -->
<div class="judge">
<ul>
<p>調班物件:
<span>蘇菲</span>
</p>
<p>
<span>備註:</span>
<span>哈哈哈哈或或或或或或或或或或或或或或或或或或</span>
</p>
</ul>
</div>
<!-- 有調班物件時judge這個隱藏 -->
<div class="border"></div>
<div class="bottom">
<p>調班保潔師:
<span>{{dbbjs}}</span>
</p>
<textarea name="txt" placeholder="請輸入你的意見"></textarea>
<span class="bottom_span">{{jianyi}}</span>
</div>
<!-- 無調班物件時和調班物件同意書bottom這個顯示 -->
<div class="bottom">
<p>保潔師主管:
<span>{{zhuguan}}</span>
</p>
<textarea name="txt" placeholder="請輸入你的意見"></textarea>
</div>
<!-- 無調班物件時和調班物件同意書bottom這個顯示 -->
<div class="consent">
<div class="consent_lf">
<button class="consent_left">不同意</button>
</div>
<div class="consent_rg">
<button class="consent_right">同意</button>
</div>
</div>
<div class="height"></div>
</script>
<script>
var data = {
avator: "https://ss3.baidu.com/9fo3dSag_xI4khGko9WTAnF6hhy/image/h%3D300/sign=b3d532e743c2d562ed08d6edd71390f3/7e3e6709c93d70cf312a368af4dcd100bba12b60.jpg",
isTb: false, //是否調班
teacherName: "水水",
zhiye: "前端大佬",
start_time: "1996-06-30",
end_time: "2018-06-30",
yuanyin: "因為水水最美,就不想上班,怎麼滴???????????????????",
jianyi: "同意!恭喜老姐,棒棒噠!!同意!恭喜老姐,棒棒噠!!", //建議,
dbbjs: "蘇菲",
day: "999999", //請假天數
zhuguan: "鄒佩玲", //保潔主管
isAgreen: true, //是否同意
};
var html = template('test', data); //data為模板資料
document.getElementById('content').innerHTML = html; //將生成的模板填充新增到對應的容器中
</script>
</body>
</html>