首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从车把模板发出AJAX调用?

从车把模板发出AJAX调用?
EN

Stack Overflow用户
提问于 2014-05-30 17:51:32
回答 1查看 680关注 0票数 0

我正在建立一个SPA在猫鼬,节点,骨干堆栈和使用手。用户注册一个或多个课程。然后,用户可以进入他的课程列表,并取消如果他选择。API可以工作,我可以从数据库中删除课程,从控制台对特定的url进行ajax调用。问题是,我需要ajax调用来从工具栏模板中获取变量。如何从我的工具栏模板捕获{_id}}并将其传递到该模板之外的AJAX删除请求中?

代码语言:javascript
运行
复制
template: Handlebars.compile(

    '<h4>{{local.petname}} is a busy beast!</h4>'+
    '<h2>Upcoming Courses: </h2>' +
    '<ul>'+
        '{{#each signup}}' +
            '<li><h3>{{name}}</h3>{{coursDay}}{{time}}{{location}}</li>' +
            '<a href="/test/signups/{{_id}}" data-id="{{_id}}""  class="btn btn-danger confirm-delete">Remove Course</a><br/><br/>' +
            '<li>{{_id}}</li>'+
        '{{/each}}'+
    '</ul>'

),

下面是我的ajax请求;attrID只返回数组中第一项的ObjectID

代码语言:javascript
运行
复制
deleteItem: function(event) {
    event.preventDefault();

    var attrID = $('.btn-danger').data();
    console.log(attrID);

  jQuery.ajax({
    url: "/test/signups/" + attrID, 
    type: "DELETE",

    success: function (data, textStatus, jqXHR) { 
      console.log("Post response:"); 
      console.dir(data); 
      console.log(textStatus); 
      console.dir(jqXHR); 
    }
  });
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-30 18:55:15

我有点不确定要在哪里调用deleteItem()函数,但问题是jQuery选择器:

$('.btn-danger')选择您的所有链接。您可以将它们重新放入jQuery包装列表中。然后,方法data()只应用于列表的第一项,因此只会导致第一个节点。您还应该提供参数'id',否则您将再次得到一个数组。

假设您希望所有链接都执行AJAX调用,则可以调用:

代码语言:javascript
运行
复制
$('.btn-danger').on('click', function(event) {
  event.preventDefault();
  var attrID = $(this).data('id');
  console.log(attrID);

  $.ajax({ ... });
});

编辑:将$(...).live() (不推荐)替换为$(...).on()

你的车把模板data-id="{{_id}}""也有问题,第二个引号应该删除。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23960636

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档