SodaRender轻量级模板引擎

联合创作 · 2023-09-22 09:31

SodaRender 是轻量级的模板引擎。当前只支持 IE9,Chrome 和移动端的所有浏览器。


SodaRender语法源自于AngularJS,前端框架Abstract.js已经内置SodaRender引擎,SodaRender引擎应用于腾讯手机QQ中,已被证实是一款优秀的模板引擎


用法示例:


Examples


html>head>title>SodaRender Examapletitle>head>div>ul id="targetUl">script type="text/soda" id="dataList">li soda-repeat="item in list" soda-if="item.show">{{item.name}}li>script>ul>div>html>

var templateStr = document.getElementById("dataList").innerHTML;

var target = document.getElementById("targetUl"); var data = {  list: [  {name: "A"},

        {name: "B"}
    ]
};  var result = sodaRender(templateStr, data);

target.appendChild(result);

APIs Of SodaRender



sodaRender


USING :   SodaRender(String templateStr, Object data)
DESCR :   Using templateStr with data to render template
RETURN: DOM Fragment
the DOM Frament Object has a method innerHTML which will return the rendered HTML code.
Meanwhile, you can use it like a common DOM Node, such as appending it to your target node.


sodaFilter


USING :   SodaFilter(String filterName, Function func(input, args...))
DESCR :   Defining Filters, so you can use filters in template



Template Language (AngularJs Template Like)


More directives have been added


{{}}



out put expressions


{{item.name + 1}}



soda-repeat



soda-repeat="item in array"


soda-repeat="item in array track by index"


soda-repeat="(key, value) in object"



USING :   SodaRender(String templateStr, Object data)
DESCR :   Using templateStr with data to render template


soda-if



soda-if="item.show"



soda-class



soda-class="currItem === 'list1' ? 'active' : ''"



soda-src



soda-src="hello{{index}}.png"



soda-bind-html



soda-bind-html="


click

"

soda-style



soda-style="style"



soda-*



soda-rx="{{rx}}%"



filters



{{input|filte1:args1:args2...|filter2:args...}} how to define filters? Just using sodaFilter Method as methioned above. Here is an example.


sodaFilter('shortTitle', function(input, length){ return (input || '').substr(0, length);
});

Template below


div soda-repeat="item in list">div class="title">{{item.title|shortTitle:10}}div>div>

浏览 17
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报