Я только что начал использовать шаблоны jQuery .
У меня есть вопрос, на который не смогла ответить документация (пока).
Мой шаблон ...
<script id="restaurant-review-template" type="text/x-jQuery-tmpl">
<li>
<span class="rating rating-${rating}">
${$item.getRating()}
</span>
</li>
</script>
... и мой код вызова ...
$('#restaurant-review-template').tmpl(allRestaurants, {
getRating: function() {
// Is it possible to access the array element here?
// Ideally, if `this` was the current array member...
return new Array((this.rating || 0) + 1).join('*');
}
}).appendTo('#cont')
jsFiddle .
В моем массиве allRestaurants
есть объекты, у которых есть свойство rating
, которое содержит число.
Я хочу вернуть список звездочек для числа в свойстве rating
. Например, если свойство rating
содержит 4
, я хотел бы вывести ****
.
Я знаю, что могу сделать что-то вроде ...
allRestaurants = allRestaurants.filter(function(element) {
element.asterixes = new Array((element.rating || 0) + 1).join('*');
return true;
});
jsFiddle .
... но я бы не стал добавлять массив с этим дополнительным свойством только для шаблона.
Итак, в пользовательской функции шаблона, такой как выше, есть способ получить доступ к текущему элементу массива (я сделал console.log(this, arguments)
и ничего полезного не увидел).
Если нет, то какой самый чистый способ добиться этого?