art-template常用语法

1.基础数据渲染

  • 直接输出就用{{}}
  • 编译输出前面加上#(比如内容带有标签)
<div id="content"></div>
<script id="test" type="text/html">
    <h1>{{title}}</h1>
	<h1>{{#title}}</h1>
</script>
<script>
var data = {
    title: 'hello world',
	title_compile: '<p>hello world</p>'
};
$('#content').html(template("test",data))
</script>

2.判断语句

{{if value}} ... {{else if value}} ... {{else}} ... {{/if}}

<script id="test" type="text/html">
    <div>
        {{if bok==22}}
        <h1>线上</h1>
        {{else if bok==33}}
        <h2>隐藏</h2>
        {{else}}
        <h3>走这里</h3>
        {{/if}}
    </div>
</script>
<script>
    var data = {
        "bok":22
    };
    $('#content').html(template("test",data))
</script>

3.嵌套

  • 嵌套直接缩进后在内部书写
{{if bok}}
	{{if list.length>=0}}
		{{each list}}
		<p>{{$index}}:{{$value}}</p>
		{{/each}}
	{{else}}
	<p>没有数据</p>
	{{/if}}
{{/if}}

4.循环

  • each后面跟字段名称
  • $index为索引值
  • $value为值
{{each name}}
<li>
	<p>索引值为:{{$index}}</p>
	<p>value值为:{{$value}}</p>
</li>
{{/each}}

5.调用自定义方法

  • 类似于过滤器
  • 通过template.helper(name,fnCallBack)注册方法,可以直接在{{}}中调用
<script id="test" type="text/html">
	<div>
		{{if c==100}}
			<ul>
				{{each person}}
					<li>姓名:{{$value.name}}--性别:{{show($value.sex)}}</li>
				{{/each}}
			</ul>
		{{/if}}
	</div>
</script>
<script>
    var data = {
        c:100,
        person:[
            {name:"jack",age:18,sex:1},
            {name:"tom",age:19,sex:0},
            {name:"jerry",age:20,sex:0},
            {name:"kid",age:21,sex:1},
            {name:"jade",age:22,sex:0}
        ]
    };
    //自定义函数
    template.helper("show",function(sex){
        console.log(sex);//同样可以打印日志到控制台
        if(sex==0){
            return "男"
        }else if(sex==1){
            return "女"
        }
    });
	$('#app').html(template("test",data))
</script>

6.模板引入

  • {{include 'main'}} 引入子模板,数据默认为共享
  • {{include 'main' a}} a为制定数据,但是同样必须是父级数据,可以看看下面的例子,如果不注入的a的话,引入的子模板是接受不到数据的
# main模板
<script id="main" type="text/html">
    <ul>
       {{each list}}
            <li>{{$value}}</li>
        {{/each}}
    </ul>
</script>
# test模板
<script id="test" type="text/html">
    <div>
        <ul>
            {{each person}}
                <li>{{$value.name}}</li>
            {{/each}}
        </ul>
        {{include 'main' a}}
    </div>
</script>
<script>
    var data = {
        person:[
            {name:"jack",age:18},
            {name:"tom",age:19},
            {name:"jerry",age:20},
            {name:"kid",age:21},
            {name:"jade",age:22}
        ],
        a:{
            list:['文艺', '博客', '摄影', '电影', '民谣', '旅行', '吉他']
        }
    };
	$('#app').html(template("test",data))
</script>

转载于:https://my.oschina.net/chinahufei/blog/2209495

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值