繁体   English   中英

如何获取data-id值

[英]How to get the data-id value

我正在使用backbone.marionette.js并且我能够将值填充到表中,但是在尝试获取所选行的值时我遇到了问题。

以下是我的模板:

<td><%= firstName %></td>
<td><%= lastName %></td>
<td><%= designation %></td>
<td>
  <a href="#" data-id='<%= userid %>'>
    <img src="assets/img/add.png"  id="add-puppet-button" alt="Add Row" />
  </a>
  <img src="assets/img/remove.png"  id="remove-puppet-button" alt="Remove Row"/>
</td>

数据存在于data-id 当我调试时,我发现它是undefined 我试着通过以下方式获得它:

accordianView : function(e){
  e.preventDefault();
  var userid = $(e.currentTarget).data("userid");
  var puppet = new PuppetModel();
  puppet = PuppetTable.puppetCollection.get(userid);
  console.log("firstName : "+puppet.get("firstName"));
  console.log("lastName : "+puppet.get("lastName"));
  console.log("Designation : "+puppet.get("designation"));
}

我在这里犯的错是什么? 请指导我解决这个问题。

var userid = $(e.currentTarget).data("userid");

需要是:

var userid = $(e.currentTarget).data("id");

我最好给链接一个ID或一个类,然后使用jquery的数据方法

默认情况下,模板中唯一可用的属性是在模型实例上定义的属性。 似乎userid不属于该模型,因此它将是未定义的。

您可以将属性附加到模型,或者(更清洁的方式)在视图中定义serializeData函数以丰富提供给视图的数据:提供具有所有puppet实例属性的对象,并添加userid

你可以在这里看到serializeData一个例子: https//github.com/davidsulc/marionette-gentle-introduction/blob/master/assets/js/common/views.js

相关文档如下: https//github.com/marionettejs/backbone.marionette/blob/master/docs/marionette.itemview.md#itemview-serializedata

您正在使用牵线木偶项目视图。 您不应该从Dom中撤回数据。

简单地做

var userid = this.model.get("userid");

Backbone和牵线木偶使得您无需在Dom中存储数据。 你有一个模型。

var userid = $(e.currentTarget).data("id");

会工作。 与backbone.js一起使用是一种糟糕的模式

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM