2017-02-22 17 views
0

Я хочу удалить выбранного ребенка с помощью кнопки из ссылки внутри HTML-вывода.Firebase удалить ключ из ref внутри js loop (web)

Ключ - сообщение чата или сообщение.

Теперь я хочу, чтобы пользователь мог удалить выбранное сообщение/сообщение с помощью кнопки.

Я могу удалить все, но не точно выбранный ребенок.

Результаты и содержание поступают из цикла «за».

Удалить выбранное (дитя) с угловым и угловым огнем не проблема, но я хочу это без углового.

// 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(); 

}); 
}); 
}); 

screenshot

+0

Ваш вопрос довольно запутанный, можете прояснить пожалуйста. Также удалите код, который не имеет отношения к вопросу. – MarksCode

+0

Извините. Я действительно пытаюсь понять ваш код, но не могу понять, как он должен работать. Итерация над детьми моментального снимка с 'for in' ** очень подозрительна **. Более распространенным шаблоном является итерация с помощью функции snapshot.forEach (function (child) {... '. Решение вашего вопроса выполняется в два этапа: * 1) * добавить ключ сообщения в HTML, который вы создаете для этот пост, * 2) * прочитайте ключ назад, когда пользователь нажимает на кнопку, а затем удаляет правильный ребенок. –

+0

Хорошо, «подозрительно» :), это работает для меня, но я думаю, что вы правы, я сделаю снимок. Но почему нет проблем с удалением текущего ключа с угловым циклом итерации/повтором ??? без установки & получить текущее значение ключа. Я хочу, чтобы это было просто/меньше, но когда это невозможно, я устанавливаю и читаю ключ обратно. Спасибо за эту возможность! – MikeCaine

ответ

0

Есть несколько вещей, которые вы можете сделать. Во-первых, похоже, что у вас будет несколько кнопок с iddeleteThis, когда каждый id должен быть уникальным. Поэтому вместо этого вы можете добавить обработчик кликов в .delete. Во-вторых, как упоминалось выше, вы должны использовать snapshot.forEach для повторения над детьми. Наконец, при создании кнопки, вы можете добавить ключ пост в качестве атрибута данных:

<button class='delete' data-key='" + newPost.key + "'> X </button> 

Затем в обработчик щелчка вы можете использовать этот ключ, чтобы предназначаться эту конкретную должность:

$('.delete').on('click', function(){ 
    var id = "user/chat/" + this.dataset.key; 
    firebase.database().ref(id).remove(); 
}); 
+0

THX --- Я попробую позже, это звучит хорошо в любом случае! Большое спасибо!!! – MikeCaine

+0

IT WORK'SS - ZZ - TOP !!!! THX Много Adrice & Frank! Perfect: :))) ps (второй способ с методом forEach и datakey. Я очень благодарен вам! – MikeCaine