未捕获的TypeError:$ .tmpl不是函数

时间:2017-03-16 10:12:52

标签: javascript jquery ajax jquery-templates

我正在使用JQuery模板功能在html页面中呈现模板。 我已经使用

加载了库
<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.4.4.js"></script> 
<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jquery.templates/beta1/jquery.tmpl.js"></script>

现在在Button命中我调用函数displayProducts()并使用ajax调用后端Java服务来获取JSON格式的数据。 responseJson是我从后端回来的数据。

我的模板文件名是productList.html。成功之后,我正在调用jquery的tmpl函数。但它显示以下错误。

  

未捕获的TypeError:$ .tmpl不是函数

请在我的代码中说明错误。

function displayProducts() {
    $.ajax({
                url : 'DisplayProducts',
                data : {
                    searchKey : $('#searchText').val()
                },
                success : function(responseJson) {
                    console.log(JSON.stringify(responseJson));
                    $.get('template/productList.html', function(htmlTemplate) {
                        $.tmpl(htmlTemplate, responseJson).appendTo('#container2');
                    });                     
                }
            });
}

编辑:

当我使用时

var blogPosts = [
             {
                 postTitle: "How to fix a sink plunger in 5 minutes",
                 postEntry: "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas porttitor congue massa. Fusce posuere, magna sed pulvinar ultricies, purus lectus malesuada libero, sit amet commodo magna eros quis urna.",
                 categories: ["HowTo", "Sinks", "Plumbing"]
             },
             {
                 postTitle: "How to remove a broken lightbulb",
                 postEntry: "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas porttitor congue massa. Fusce posuere, magna sed pulvinar ultricies, purus lectus malesuada libero, sit amet commodo magna eros quis urna.",
                 categories: ["HowTo", "Lightbulbs", "Electricity"]
             },
             {
                 postTitle: "New associate website",
                 postEntry: "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas porttitor congue massa. Fusce posuere, magna sed pulvinar ultricies, purus lectus malesuada libero, sit amet commodo magna eros quis urna."
             }
         ];
         $.get('template/sample.html', function(template) {
             $.tmpl(template, blogPosts).appendTo('#container3');
         });

里面&lt;脚本&gt;标签。它工作正常。但是,当我使用我之前发布的方式时,它显示错误。

3 个答案:

答案 0 :(得分:0)

只需检查'jquery.tmpl.min.js'必须添加引用,这里是链接文件。 https://github.com/BorisMoore/jquery-tmpl

答案 1 :(得分:0)

我的代码中的版本号完全没有问题。 html模板中缺少一个。这就是我收到错误的原因。现在修好了。

答案 2 :(得分:0)

我在我的项目中修复了这个错误,我刚刚将此链接添加到jQuery资源:

var controller : UIViewController = UIViewController(nibName:"controllerNibName", bundle: nil)
controller.title = "SAMPLE TITLE"
controllerArray.append(controller)