JQuery模板-调用${$item.function()},而不是在模板中指定
JQuery Template - Calls ${$item.function()} more than is specified in the template
Jquery-tmpl似乎多次调用附加到item
的函数。
JSfiddle : http://jsfiddle.net/abQwc/2/
console.log的show rowCount被模板渲染的每项调用4次。
模板:
<h1 class="${$item.rowCount() % 2 == 0 ? "even" : "odd"}">${Name} - ${Payload}</h1
数据:
data = [
{ Name: "1", Payload: "Data1" },
{ Name: "2", Payload: "Data2" },
{ Name: "3", Payload: "Data3" }
]
脚本:
$(function() {$( "#template" )
.tmpl(data, {
rowCount: function(){
var rowCount = 0;
return function(){
console.log(this.data.Payload);
return ++rowCount;
}
}()
})
.appendTo( "body" )})
为什么?我已经想到了如何绕过它,但它散发着巫术的味道。
我替换了:
${$item.rowCount() % 2 == 0 ? "even" : "odd"}
...
return function(){
console.log(this.data.Payload);
return ++counter;
}
${$item.rowCount()}
....
return function() {
console.log(this.data.Payload);
return (++counter) % 2 ? 'even' : 'odd';
}
,并能让它工作。然而,Options参数仍然为每个条目执行4次。我相信这样的计算在tmpl中仍然是不确定的。
相关文章:
- AngularJS:控制器中的函数被模板多次调用
- 从另一个dojo模板窗口小部件调用dojo模板小部件中的函数
- 可以'ajax调用后,我找不到模板中的元素
- 向模板实例变量传递调用方法调用的结果时出现异常
- Meteor-如何在同一模板助手中调用另一个函数
- Ember 1.10-升级错误-模板必须是一个函数.您是想调用Ember.Handlebars.compile(“..”
- jQuery Ajax 调用重定向到被调用的 URL 而不是相同的模板
- 在呈现模板之前调用帮助程序
- 下划线模板内的 FB.api() 调用
- 如何从kendoListView模板中调用函数
- 未捕获错误:在未加载模板编译器的情况下,无法调用“compile”.请在调用“compile”之前加载“ember te
- 对模板中的胡子变量调用方法
- 模板抛出-未捕获类型错误:无法调用方法'匹配'的未定义
- 在表单提交之前,save()内部的方法调用显示模板的返回
- 如何将模板与加载了从 ember.js 中的调用模板传递的数据的文本框一起使用
- 从主干视图调用模板中的变量
- 如何从同一文件中调用模板帮助器
- 流星从另一个方法调用模板方法
- AngularJS:调用模板子元素上的可选嵌套指令
- 骨干模板:从javascript文件中调用模板中的方法