我正在尝试使用带有Knockout.js的jQuery模板来获得一个很好的解耦UI和&逻辑webapp。在前一次迭代中,我通过循环手动建立了一个数据列表,并使用data()方法将我正在格式化的实际对象添加到列表项中 - 这意味着我可以在单击后轻松提取对象,然后对它进行操作,例如:
function createBusCatListItem(busCat) {
var $item = $("<li>");
$item.data("busCat", busCat);
var $text = $("<span>").html(busCat.busCatName)
$text.addClass("listText");
$text.click(function () {
handleCategoryClick(this);
});
$text.appendTo($item);
return $item;
}
是否有一种在jQuery模板中使用data()的方法,或者它只处理标记,所以我应该将id放在“data-id”标记内,并将其用作查找,例如:
<script id="selectableCategory" type="text/html">
<li data-id="${busCatCode}"> ${busCatName} </li>
</script>
感激地收到所有建议
欢呼声
Ť
答案 0 :(得分:2)
如果要访问渲染模板时使用的对象,可以使用tmplItem()。数据,如下所述:http://api.jquery.com/jquery.tmplitem/
以下是JSFiddle上的示例:http://jsfiddle.net/rniemeyer/tLnwx/