Kendo ui 单击剑道列表视图模板中的事件

Kendo ui 单击剑道列表视图模板中的事件,kendo-ui,telerik,Kendo Ui,Telerik,如何使用列表视图组件配置单击事件?调试脚本未在addToCart()内的断点上停止 ListView的定义: $(“#main”).kendoListView({ 数据源:项目, 模板:kendo.template($(“#item”).html()), addToCart:函数(e){ 购物车。添加(如数据); } }); 模板: :产品名称 添加到购物车 编辑:如果listView以内联方式构建为一个剑道,则它可以工作。可观察的: var indexModel=kendo.obs

如何使用列表视图组件配置单击事件?调试脚本未在addToCart()内的断点上停止

ListView的定义:

$(“#main”).kendoListView({
数据源:项目,
模板:kendo.template($(“#item”).html()),
addToCart:函数(e){
购物车。添加(如数据);
}
});
模板:


  • :产品名称 添加到购物车

  • 编辑:如果listView以内联方式构建为一个
    剑道,则它可以工作。可观察的

    var indexModel=kendo.observable({
    项目:项目,,
    购物车:购物车,
    addToCart:函数(e){
    购物车。添加(如数据);
    }
    });
    kendo.bind($(“#内容”),indexModel);
    
    
    
    • 添加到购物车

    • 据我所知,如果你不使用剑道可观测,它就不是一个合适的绑定。例如,您不能在模板中使用
      ,也不能将事件绑定到按钮

      要使其正常工作,您可以向按钮添加jQuery事件处理程序,并从列表视图检索数据项(请注意,
      addToCart
      不再在列表视图配置中定义):

      函数addToCart(e){
      var li=$(e.currentTarget).parent(),
      listView=$(“#main”).data().kendoListView,
      dataItem=listView.dataItem(li);
      console.log(数据项);
      }
      $('#main')。在('单击','添加到购物车',添加到购物车');
      

      我创建了一个用于演示的视图。

      “如果listView是内联构造的,它就可以工作“那么你解决了吗?我解决了我的问题,但为了将来的工作,我想知道如何通过以第一种方式定义ListView来解决这个问题。如果你把它作为一个答案,我会投票支持你的答案。”。我怀疑原因是ListView不是可观察的。工作代码中的声明性数据绑定应用于可观察对象。最初尝试添加单击事件时,没有要绑定的支持模型。这不是一个完美的解释,但可能对某些人有所帮助。值得注意的是,
      ListView
      edit模板是一个合适的绑定。