Skip to content

dorsywang/SodaRender

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SodaRender

###A lite angular-like template engine for JavaScript

##why using SodaRender?

####SodaRender is just 3KB in size. ####SodaRender has AngularJs Template like Apis. It will make your template file tidy, clearly to read. ####SodaRender reduces the error while cgi responses the data in unexpected way, such as losting some keys, error value types. ####SodaRender prevents XSS holes in your template file. ####SodaRender uses DOM parsor to render your template rather than string replacement, so it's more effective.

##who using sodaRender? SodaRender is currently using by QQ Tribes(兴趣部落) and other projects

##how to use SodaRender

###Examples

<html>
    <head>
        <title>
            SodaRender Examaple
        </title>
    </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="

"

####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>

About

lite template render engine for JavaScript

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published