ThinkPHP使用jquery-jtemplates插件

来源:互联网 发布:淘宝的商家编码是什么 编辑:程序博客网 时间:2024/06/05 20:26

今天THINKPHP3.2的项目中用到分页,使用了jquery-jtemplates.js这个模板插件,研究了一天值一直为空,打算放弃这个插件的时候再检查一遍发现果然是与THINKPHP发生冲突,发现问题的时候又有点搞笑,纠结了一天的问题就是因为一个空格。。。。大哭大哭大哭  是这样子的:

jtemplates输出变量的方式是:{$T.record.name}  TP的模板变量输出也是如此,所以TP在渲染的时候就默认把他认成TP,tp模板输出自然是没有这个值的,所以自然就为空,但是,TP手册说了:


所以,在jtemplates输出变量的地方,在座花括号( { )的后面加上一个空格在输入$T就OK了。

具体实现如下:

1、首先导入jquery和jtemplates两个文件(注意导入的顺序不能反)

<script src="__PUBLIC__/js/jquery.min.js"></script>
<script src="__PUBLIC__/js/jquery-jtemplates.js"></script>

2、然后是要作为模板使用的内容,注意一定要是textarea 标签

<textarea id="template" style="display:none"> 

{#foreach $T as record}

{ $T.record.name}

<br />

{#/for}  

</textarea>

3、定义一个div,用来放模板内容数据

<div id="address-content-list"></div>

4、因为我这里是分页,所以在ajax返回数据成功后设置模板加载返回数据

$.ajax({
            url: '__APP__/Useriframe/getXXX',
            type: 'POST',
            data: {
            "page": parseInt(page + 1)
            },
            dataType: 'json',
            success: function(data){
            //设置模板
            $("#address-content-list").setTemplateElement("template");  
                // 加载数据  
                $("#address-content-list").processTemplate(data);
           
            }
            }

});

在这里返回的数据data格式如下:

[{id: "1", name: "第一个数据"},

{id: "2", name: "第二个数据"},

{id: "3", name: "第三个数据"}]

0 0