HTML出力内の参照からボタンを使って選択した子を削除します。Firebaseはjsループ(ウェブ)内のrefからキーを削除します
キーはチャットメッセージまたは投稿です。
これで、ユーザーはボタンで選択したメッセージ/投稿を削除できるようになりました。
選択した子をすべて削除できますが、正確に削除することはできません。
結果と内容は "for in"ループから得られます。
AngularとAngularFireで選択(子)を削除することは問題ありませんが、角度を付けずに削除したいです。
// get ref
var dbRef = firebase.database().ref().child("user/chat");
// child added
dbRef.on("child_added", function(snapshot) {
var newPost = snapshot.val();
// Loop/Results
for(var prop in newPost){
var xxx = "<li>
<p>"+newPost.content+"</p>
<button class='delete' id='deleteThis'> X </button>
</li>";
$(xxx).appendTo("#ul-result");
}
// delete Post with button from above
$('#deleteThis').on('click', function(){
// delete all posts --- work
// dbRef.remove();
// delete only this post --- ?
dbRef.child('?').remove();
});
});
});
:
を次に、あなたのクリックハンドラでは、その特定のポストをターゲットに、そのキーを使用することができますあなたの質問はかなり混乱しています。また、質問と関係のないコードを削除してください。 – MarksCode
申し訳ありません。私は本当にあなたのコードを理解しようとしていますが、どのように動作するのか分かりません。スナップショットの子を「for」で反復することは、**非常に疑わしい**です。より一般的なパターンは、 'snapshot.forEach(function(child){...')で反復することです。あなたの質問に対する解決策は2段階にあります:* 1)*生成するHTMLに投稿のキーを追加しますその投稿、* 2)*ユーザーがボタンをクリックして正しい子供を削除したときにキーを読み返します。 –
Ok、 "疑わしい" :)、それは私のために働くが、私はあなたが正しいと思う、私はスナップショットを取るだろう。しかし、反復ループ/繰り返しで角を持つ現在のキーを削除するのはなぜ問題なのですか?設定せずに現在のキー値を取得します。私はそれをシンプルにしたい、またはそれ以下にしておきたいが、それが不可能なときは私はキーをセットして読み返す。その可能性をありがとう! – MikeCaine