2013-05-29 52 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

是否有任何其他方式直接刪除對象,而不是從解析中檢索對象然後刪除它? –