模板中的jQuery data()方法

时间:2011-02-02 14:54:40

标签: jquery jquery-templates knockout.js

我正在尝试使用带有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>

感激地收到所有建议

欢呼声

Ť

1 个答案:

答案 0 :(得分:2)

如果要访问渲染模板时使用的对象,可以使用tmplItem()。数据,如下所述:http://api.jquery.com/jquery.tmplitem/

以下是JSFiddle上的示例:http://jsfiddle.net/rniemeyer/tLnwx/