javascript - $。模板返回一个对象而不是函数

标签 javascript jquery-plugins anonymous-function jquery-templates

我正在使用一个名为 JsRender 的 jQuery 插件作者:鲍里斯摩尔。

主页上一切正常,但当我浏览联系页面时,插件不起作用:

Chrome 控制台中的错误消息

Uncaught TypeError: object is not a function
jquery.tmpl.js:329

Uncaught Template command not found: getDay 
js:2000

我按如下方式注册了我的标签:

var blogMarckuptmpl = '<li>' + '<div class="blog-date">' + '<img src="@Url.Content("~/Images/calendar.png")" alt="Calendário" />' + '<span class="blog-dateDay">{{getDay publishedDate}}</span>' + '<span class="blog-dateMonth">{{getMonthName publishedDate}}</span> ' + '</div> ' + '<div class="blog-text">' + '<a href="{{=link}}" target="_blank" title="{{=title}}">' + '<h4>{{=title}}</h4>' + '</a>' + '<p>{{=contentSnippet}}</p>' + '</div>' + '</li>';
$.template("blogTmpl", blogMarckuptmpl);
$.views.registerTags({
  getDay: function(val) {
    return new Date(val).getDate();
  },
  getMonthName: function(val) {
    return new Date(val).toString("MMM").toLowerCase();
  }
});
var feedBlog = new google.feeds.Feed("http://blog.bindsolution.com/rss");
feedBlog.setNumEntries(4);
return feedBlog.load(function(blogFeedResult) {
  if (!blogFeedResult.error) {
    $("#blog-feed").html($.render(blogFeedResult.feed.entries, "blogTmpl"));
  }
}

浏览JsRender源码发现,联系页面中的$.template(tmpl)函数返回的是一个对象,而不是一个匿名函数(如主页中那样) .

更多信息

为了便于理解,捕获了调试镶边的图像:

每个页面两张图片(联系页面和主页) 第一个图像(最后 1 )是 $.template(tmpl) 之前的调试,第二个图像(以 2 结尾)是 $.template(tmpl) 之后的调试.

注意范围变量(右侧)中的tmpl对象

首页(之前):tmpl 字符串类型

主页(之后): 注意 Scope Variable 中的 tmpl 对象(右侧) 他是一个匿名函数! (正确!)

联系页面(之前):tmpl 字符串类型

联系页面(之后): 注意 Scope Variable 中的 tmpl 对象(右侧) tmpl 是一个对象类型!!??

** 调试图像 **

也可访问:http://imgur.com/a/LwXDn

主页(之前)

Home page (before)

tmpl 字符串类型

<小时/>

主页(之后)

Home page (after)

注意范围变量(右侧)中的tmpl对象 他是一个匿名函数! (正确!)

<小时/>

联系页面(Begore)

Contatc page (before)

tmpl 字符串类型

<小时/>

联系页面(之后)

Contact page (after)

注意范围变量(右侧)中的tmpl对象

tmpl 是一个对象类型!!??

最佳答案

与该插件的创建者交谈时,我发现它不能与 jQuery 模板同时使用。

关注对话: https://github.com/BorisMoore/jsrender/issues/19

关于javascript - $。模板返回一个对象而不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8084036/

相关文章:

javascript - 允许 javascript 函数接受任意数量的参数

javascript - 在 Jquery 中加载图层

JavaScript - 将数据传递给匿名函数

javascript - HTA 给出与 Angular 结合的误差

javascript - 使用 Ajax 生成的链接启动 JQuery 对话框

php file_put_contents 无法在 apache 服务器目录上创建文件

jquery - 使用jqueryeach()和hover()选择多个id并悬停

javascript - jQuery Flexigrid 调整 IE7 中的列大小已损坏

c# - 不能通过委托(delegate)

重新设置闭包变量