腾讯arttemplate 辅助方法 怎么 转义

腾讯arttemplate 辅助方法 怎么 转义,第1张

下载后其中自带有例子;下面是自己参照写的。

<!DOCTYPE HTML >

<html>

<head>

<meta http-equiv="Content-Type" content="text/htmlcharset=utf-8" />

<title>Index</title>

<script src="dist/template.js"></script>

</head>

<body>

<div id="content"></div>

<script id="test" type="text/html">

{{if isAdmin}}

<h1>{{title}}</h1>

<ul>

{{each list as value index}}

<li>索引:{{index}}:{{value}}</li>

{{/each}}

</ul>

{{/if}}

</script>

<script>

var data = {

title : 'HELLO WORLD',

isAdmin : true,

list : ['新闻','军事','历史','政治']

}

var html = template('test', data)

document.getElementById("content").innerHTML = html

</script>

<hr/>no-escape 不转义HTML

<div id="div_noescape"></div>

<script id="no_escape" type="text/html">

<p>不转义:{{#text}}</p>

<p>默认转义: {{text}}</p>

</script>

<script>

var data_noEscape = {

text: '<span style="color:#F00">hello world!</span>'

}

var html_noescape = template("no_escape", data_noEscape)

document.getElementById("div_noescape").innerHTML = html_noescape

</script>

<hr/>在javascript中存放模板

<div id="div_complie"></div>

<script>

var source = '<ur>' +

'{{each list}}'+

'<li>索引:{{$index+1}}:{{$value}}</li>'+

'{{/each}}'+

'</ul>'

var data = {

list : ['电影','电视剧','综艺','音乐']

}

var render = template.compile(source)

var html = render(data)

document.getElementById("div_complie").innerHTML = html

</script>

<hr/>嵌入子模板(include)

<div id="div_include"></div>

<script id="include" type="text/html">

{{include 'test'}}

</script>

<script>

document.getElementById("div_include").innerHTML = html

</script>

<hr/>辅助方法

<script id="helper" type="text/html">

{{time | xx:'yyyy年 MM月 dd日 hh:mm:ss'}}

</script>

<div id="div_helper"></div>

<script>

/**

* 对日期进行格式化,

* @param date 要格式化的日期

* @param format 进行格式化的模式字符串

* 支持的模式字母有:

* y:年,

* M:年中的月份(1-12),

* d:月份中的天(1-31),

* h:小时(0-23),

* m:分(0-59),

* s:秒(0-59),

* S:毫秒(0-999),

* q:季度(1-4)

* @return String

*/

function dateFormat(date, format){

date = new Date(date)

var map = {

"M": date.getMonth() + 1, //月份

"d": date.getDate(), //日

"h": date.getHours(), //小时

"m": date.getMinutes(), //分

"s": date.getSeconds(), //秒

"q": Math.floor((date.getMonth() + 3) / 3), //季度

"S": date.getMilliseconds() //毫秒

}

format = format.replace(/([yMdhmsqS])+/g, function(all, t){

var v = map[t]

if (v !== undefined) {

if (all.length >1) {

v = '0' + v

v = v.substr(v.length - 2)

}

return v

}

else if (t === 'y') {

return (date.getFullYear() + '').substr(4 - all.length)

}

return all

})

return format

}

var data = {

time: 1408536771253,

}

template.helper("xx", dateFormat)

var html = template('helper', data)

document.getElementById('div_helper').innerHTML = html

// document.getElementById("div_helper").innerHTML = dateFormat(new Date())

</script>

</body>

</html>

一、使用javascript 模板引擎

用javascript预编译模版,就是动态修改模板文件使之成为一个可用的静态HTML文件。 我平时会使用artTemplate,性能很好而且易上手。

编写模板

使用一个type="text/html"的script标签存放模板:

<script id="test" type="text/html">

<h1>{{title}}</h1>

<ul>

{{each list as value i}}

<li>索引 {{i + 1}} :{{value}}</li>

{{/each}}

</ul>

</script>

渲染模板

var data = {

title: '标签',

list: ['文艺', '博客', '摄影', '电影', '民谣', '旅行', '吉他']

}

var html = template('test', data)

document.getElementById('content').innerHTML = html

二、使用CoffeeScript

CoffeeScript支持类似于Python的跨行字符串,这样很轻易的就能保持HTML结构的可读性,而不需要使用“+”或者采用拼数组的形式。

str="""

<div class="dialog">

<div class="title">

<img src="close.gif" alt="关闭" />关闭

</div>

<div class="content">

<img src="delete.jpg" alt="" />

</div>

<div class="bottom">

<input id="Button2" type="button" value="确定" class="btn"/>

<input id="Button3" type="button" value="取消" class="btn"/>

</div>

</div>

"""


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7344654.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存