2011-11-20 3 views
0

에서 문서를 제거하고 단지Couchapp -</p> <p>을 나는 DB에서 생성 된 두 개의 문서가 - 내가 지금까지이 함께했다 나는 JQuery와 새로운 오전 CouchDB를

this에 따라 Couchapp의 느낌을 얻기 위해 노력 '주소록'

curl -X PUT http://127.0.0.1:5984/addressbook  
curl -X PUT http://127.0.0.1:5984/addressbook/Fred -d '{"type":"address","name":"Fred","mobile":"555-0001"}'  
curl -X PUT http://127.0.0.1:5984/addressbook/Barney -d '{"type": "address", "name": "Barney", "mobile": "555-0002"}' 

\ 주소록 \ _attachments \ index.html을

<!DOCTYPE html> 
<html> 
    <head> 
    <title>Simple address book</title> 
    <link rel="stylesheet" href="style/main.css" type="text/css"> 
<span style="white-space: pre;"> </span><script src="/_utils/script/json2.js"></script> 
<span style="white-space: pre;"> </span><script src="/_utils/script/jquery.js"></script> 
<span style="white-space: pre;"> </span><script src="/_utils/script/jquery.couch.js"></script> 
    </head> 
    <body> 
    <h1>Simple address book</h1> 
<span style="white-space: pre;"> </span><div id="add"><button type="button" id="add">Add</button></div> 
    <div id="addressbook"> 
    </div> 
    </body> 
<script src="vendor/couchapp/loader.js"></script> 
</script>  
</html> 

\ 주소록 \ 공급 업체 \ couchapp \ _attachments \ loader.js

function couchapp_load(scripts) { 
    for (var i=0; i < scripts.length; i++) { 
    document.write('<script src="'+scripts[i]+'"><\/script>') 
    }; 
}; 

couchapp_load([ 
    "/_utils/script/sha1.js", 
    "/_utils/script/json2.js", 
    "/_utils/script/jquery.js", 
    "/_utils/script/jquery.couch.js", 
    "vendor/couchapp/jquery.couch.app.js", 
    "vendor/couchapp/jquery.couch.app.util.js", 
    "vendor/couchapp/jquery.mustache.js", 
    "vendor/couchapp/jquery.evently.js" 
]); 

$db = $.couch.db("addressbook"); 
function refreshAddressbook() { 
    $("div#addressbook").empty(); 
    $db.view("addressbook/phonenumbers", { 
     success : function (data) { 
      for (i in data.rows) { 
       id = data.rows[i].id; 
       name = data.rows[i].key; 
       phonenumber = data.rows[i].value; 
       html = '<div class="address">' + 
        '<span class="name">' + name + '</span> ' + 
        '<span class="phonenumber">' + phonenumber + '</span> ' + 
        '<a href="#" id="'+ id +'" class="edit">edit</a> ' + 
        '<a href="#" id="'+ id +'" class="delete">delete</a> ' + 
        '</div>'; 
       $("div#addressbook").append(html); 
      } 
     } 
    }); 
} 

$(document).ready(function() { 
    refreshAddressbook(); 
}); 

$(document).ready(function() { 
$("div#addressbook").click(function (event) { 
    var $tgt = $(event.target); 
    if ($tgt.is('a')) { 
     id = $tgt.attr("id");    
     if ($tgt.hasClass("edit")) { 
      // TODO: implement edit functionality 
     } 
     if ($tgt.hasClass("delete")) { 
      html = '<span class="deleteconfirm">Sure? <a href="#" class="dodelete">Yes</a> <a href="#" class="canceldelete">No</a></span>'; 
      $tgt.parent().append(html); 
     } 
     if ($tgt.hasClass("dodelete")) { 
      $db.openDoc(id, { 
       success : function (doc) { 
        $db.removeDoc(doc, { 
         success : function() { 
          $tgt.parents("div.address").remove(); 
         } 
        }) 
       } 
      }); 
     } 
     if ($tgt.hasClass("canceldelete")) { 
      $tgt.parents("span.deleteconfirm").remove(); 
     } 
    } 
}); 
}); 

그러나, 나는 문서 작업을 삭제할 수 없었다 - 나는 디버깅 시도하고 명확하게 내가 말할 때 - id = $tgt.attr("id"); - 아이디 여기에 비어 있습니다.

나는 여기에 사소한 것을 놓치고 있어야합니다. 모든 포인터가 좋을 것입니다.

답변

1

나는 지금 같은 일을하고있다. 문제는 개별 링크에 ID를 지정해야한다는 것입니다.

html = '<div class="address">' + 
    '<span class="name">' + name + '</span> ' + 
    '<span class="phonenumber">' + phonenumber + '</span> ' + 
    '<a href="#" class="edit" id = "' + id + '">edit</a> '+ 
    '<a href="#" class="delete" id = "' + id + '">delete</a> '+ 
    '</div>'; 

및 삭제 기능에서 "dodelete"라인 : 원래 링크는

html = '<span class="deleteconfirm">Sure? <a href="#" class="dodelete" id = "' + id + '">Yes</a> <a href="#" class="canceldelete">No</a></span>'; 

이제 removeDoc 호출에 그 모자를 걸 수있는 뭔가가.

+0

내 잘못 .. 나는 그것을 간과했다 ... 지금 일하고있다! 많은 감사 ... –