代码之家  ›  专栏  ›  技术社区  ›  Denis Policarpo

Firebase-检查数据是否有子级

  •  0
  • Denis Policarpo  · 技术社区  · 7 年前

    我有一个表和一个类别页面,这些类别可以容纳文档。“我的类别索引”页面显示我的所有类别,可以选择删除我想要的类别。我只是希望它可以排除,如果类别没有任何文档。

    我的结构是:

    enter image description here

    我的代码中删除类别的部分如下:

    $('.exclude i').click(function(){
                            if(categoriasRef.child($(this).parent().attr('keyCategoria')).child('documentos')){
                                if(confirm("Você realmente deseja apagar esse registro?")){
                                    categoriasRef.child($(this).parent().attr('keyCategoria')).remove();
                                }
                            }
                        })
    

    我尝试添加:

    if(categoriasRef.child($(this))。父项()。属性(“keyCategoria”)。子项('documentos'))

    ,但此条件始终正确,即使该类别没有像您的孩子那样的文档,因此该条件始终有效,您可以删除该类别。

    我不知道如何区分有文档的类别和没有附加文档的类别,以便在有文档不能删除的情况下进行处理。

    为了更好地理解整个代码:

    function initFirebase(){
    
            function carregaCategorias(){
                categoriasRef.on('value', function(data){
                    headertb = isAdmin ? "<th>Categoria</th><th>Editar</th><th>Excluir</th>" : "<th>Categoria</th>";
                    $('#tableCustom thead tr').html(headertb);
    
                    $("#tableCustom").dataTable().fnDestroy();
                    $('#tableCustom tbody').html('');
    
                    for(var key in data.val()){
                        categoria = data.val()[key]
                        if(isAdmin){
                            linha = "<tr>"+
                                        "<td>"+categoria.titulo+"</td>"+
                                        "<td><a href='/categorias/"+key+"/edit/'><i class='fa fa-edit'></i></a></td>"+
                                        "<td class='exclude' keyCategoria='"+key+"'><i class='fa fa-trash-o'></i></td>"+
                                    "</tr>";
                            $('#tableCustom').append(linha);
                        }else{
                            window.location = "/documentos?estado=not_admin";
                        }
    
    
                    }
    
                    closeLoader();
    
                    //datatable        
                    $('#tableCustom').dataTable({
                        "aaSorting": [[ 0, "asc" ]],
                        "oLanguage": {
                            "sUrl": "/datatable_pt.txt"
                        },
                        "aoColumnDefs": [
                            { "bSortable": true, "aTargets": [ 0 ] },
                            { "bSearchable": false, "aTargets": [ 0 ] }
                        ]
                    });
    
    
                    if(isAdmin){
                        $('.exclude i').click(function(){
                            if(categoriasRef.child($(this).parent().attr('keyCategoria')).child('documentos')){
                                if(confirm("Você realmente deseja apagar esse registro?")){
                                    categoriasRef.child($(this).parent().attr('keyCategoria')).remove();
                                }
                            }
                        })
                    }
                }); 
            }
    
            carregaCategorias();
        }
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   Mario Villalobos    7 年前

    您是否尝试使用exists?

    Here the exists documentation