Jquery-tmpl, кажется, вызывает функции, которые вы прикрепляете к item
несколько раз.
JSfiddle : http://jsfiddle.net/abQwc/2/
Вызвана строка show.Count из console.log, вызванная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" )})
Почему?Я уже разобрался, как обойти это, но оно пахнет колдовством.