2013-05-29 48 views
0

我拥有的是两个输入,用于输入保存到数据库的名字和姓氏。接下来使用Handlebars.js,我循环访问数据库中的对象以创建所有“联系人”列表,并添加一个按钮,单击该按钮时应删除该联系人。使用Handlebars.js从parse.com删除对象

Example of what i'm looking for

的问题是我不能删除的对象。 以下是我迄今使用过的代码。

<script id="template" type="text/x-handlebars-template"> 
<table> 
<tr> 

<td> 
<input value={{FirstName}}></input> 
</td> 
<td> 
<input id="EditLname" value={{LastName}}></input> 
</td> 
<td> 
<button id=del>delete</button> 
</td> 

</tr> 
</table> 
</script> 

下面的其他重要代码。

$(window).load(function() { 
     var Contact = Parse.Object.extend("Contact"); 
     var query = new Parse.Query(Contact); 
     query.equalTo("objectId"); 
     query.find({ 
      success: function (results) { 

       for (i = 0; i < results.length; i++) { 
        var data = ({ 
         FirstName: results[i].attributes.FirstName, 
         LastName: results[i].attributes.LastName 
        }); 
        var template = Handlebars.compile($('#template').html()); 

        var html = template(results); 

        $("#main").append(template(data)); 
       } 
      }, 
      error: function (error) { 
       alert("Error: " + error.code + " " + error.message); 
      } 
     }); 

     $(document).on("click", "#del", function() { 
      myObject.destroy({ 
       success: function (myObject) { 
        // The object was deleted from the Parse Cloud. 
       }, 
       error: function (myObject, error) { 
        // The delete failed. 
        // error is a Parse.Error with an error code and description. 
       } 
      }); 
     }); 
    }); 

上面在控制台日志中给出了“Uncaught ReferenceError:myObject is not defined”。但是我有这个代码来展现我的思维模式。

只是为了防止任何人不确定,我想要的是当点击约翰史密斯旁边的按钮时,“约翰史密斯”将从数据库中删除/删除。

编辑:基本上我想得到This工作与把手。

编辑:This Question问上Parse.com

+0

原谅我,如果这只是我对handlebars.js的无知,但是,据我所见,你不会设置myObject为任何东西,至少不在上面的例子中。 –

+0

没问题我是新手柄自己。我之所以不myObject的设置是什么,我有什么把它设置或如何配置#del按钮,我只是把代码从https://www.parse.com/docs/没有真正的想法js_guide#删除对象,以便人们可以了解我正在尝试做什么。我已经能够做到这一点只使用DOM,但我当它涉及到车把 –

+0

啊有点失落,我明白了,这是有道理的。好吧,我不是在车把如此之大,我可以给你的jsfiddle(http://jsfiddle.net/x4rWF/2/),显示什么,我觉得你想要做的,但在AngularJS(HTTP:// angularjs .org) –

回答

1

我通过找到我设置为按钮的“值”的对象的OBJECTID得到它。

把手模板

<script id="template" type="text/x-handlebars-template"> 
<table> 
<tr> 
<td> 
<input id="EditName" value={{FirstName}}></input> 
</td> 
<td> 
<input id="EditLname" value={{LastName}}></input> 
</td> 
<td> 
<button id="del" value="{{objId}}">Delete</button> 
</td> 
</tr> 
</table> 
</script> 

填充模板,并设置点击删除按钮时的按钮

$(window).load(function() { 
     var Contact = Parse.Object.extend("Contact"); 
     var query = new Parse.Query(Contact); 
     query.equalTo("objectId"); 
     query.find({ 
      success: function (results) { 

       for (i = 0; i < results.length; i++) { 
        var data = ({ 
         FirstName: results[i].attributes.FirstName, 
         LastName: results[i].attributes.LastName, 
         objId: results[i].id 
        }); 
        var template = Handlebars.compile($('#template').html()); 

        var html = template(results); 

        $("#main").append(template(data)); 
       } 
      }, 
      error: function (error) { 
       alert("Error: " + error.code + " " + error.message); 
      } 
     }); 

,最终代码的“价值”。

$(document).on("click", "#del", function() { 

      var delObject = $(this).attr("value"); 

      var query = new Parse.Query(Contact); 
      query.get(delObject, { 
       success: function (delObj) { 
        // The object was retrieved successfully. 
        delObj.destroy({}); 
        window.location = "index.html"; 
       }, 
       error: function (object, error) { 
        // The object was not retrieved successfully. 
        // error is a Parse.Error with an error code and description. 
        alert("Error: " + error.code + " " + error.message); 
       } 
      }); 

     }); 
+0

是否有任何其他方式直接删除对象,而不是从解析中检索对象然后删除它? –