【问题标题】:jQuery data() method inside templates模板中的 jQuery data() 方法
【发布时间】:2011-06-20 00:56:36
【问题描述】:

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

感谢所有建议

干杯

T

【问题讨论】:

  • 你能给我们一个你原来的javascript的例子吗?

标签: jquery jquery-templates knockout.js


【解决方案1】:

如果您想访问在呈现模板时使用的对象,您可以使用 tmplItem().data,如下所述:http://api.jquery.com/jquery.tmplitem/

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

【讨论】:

  • 是的,就是这个 - 我在这里稍微更新了您的示例:jsfiddle.net/tLnwx/11 以证明它是实际对象。不错
猜你喜欢
  • 1970-01-01
  • 2012-08-17
  • 2017-12-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-24
相关资源
最近更新 更多