【问题标题】:Problems with displaying data in the view (angularjs)在视图中显示数据的问题(angularjs)
【发布时间】:2017-02-22 17:32:16
【问题描述】:

这是一个 json 示例,我正在检索 2 个对象:

 [{"project_id":"538","proyecto":"Caja","tarea":"DEF","fecha_termino":"00-00-00","estado":"Vencido","nombre_completo":"Christiano Ronaldo","alerta":"-Analista responsable: Lionel Messi.; \r\n-Estado Actual: DEF en Construcci\u00f3n detenido por el arbitro.; \r\n-Evaluaci\u00f3n validar en caja lejos. Validacion de pin de trajetas cau.;\r\n28-06-2017 : Usuario Suspende proyecto por cambio de prioridad."},{"project_id":"538","proyecto":"Caja ","tarea":"CAT y Capacity","fecha_termino":"00-00-00","estado":"Vencido","nombre_completo":"Christiano Ronalddo","alerta":"-Analista responsable: Lionel Messi.; \r\n-Estado Actual: DEF en Construcci\u00f3n detenido por capacity de Depto de Tarjetas.; \r\n-Evaluaci\u00f3n validar en caja atalla o redbanc. Validacion de pin de trajetas cau.;\r\n28-06-2017 : Usuario Suspende proyecto por cambio de prioridad."}]

我将数据存储在要显示的角度:

scope.llamada1 = function() { 

    $http.get("conector.php?tipoDato=query1")
    .then(function(response) {
        $scope.mensajeEspera = "";
        $scope.datos1 = response.data;

        for(var i = 0; i < $scope.datos1.length; i++){
            var currentObj = $scope.datos1[i];
            currentObj.TareasObj = currentObj.tarea + ", " + currentObj.fecha_termino + ", " + currentObj.estado + ", " + currentObj.nombre_completo;
            console.log(currentObj.TareasObj);
            $scope.detalleProyecto = currentObj.TareasObj;
            currentObj.detalleProyecto = currentObj.TareasObj;
        }
    $scope.detalleProyecto = currentObj.TareasObj;
    });
}

我有项目,每个项目可以有多个任务,我需要这样显示数据:

<table id="tablaTareas" class="table table-striped table-bordered" >
    <thead>
        <tr>
        <td><b>Proyecto</b></td>
        <td><b>Alerta</b></td>
        <td><b>Tareas</b></td>
        </tr>
    </thead>
    <tbody>
        <tr ng-repeat="x in datos1 ">
            <td style="vertical-align: top;">{{x.proyecto}}</td>
            <td style="vertical-align: top;">{{x.alerta}}</td>
            <td style="vertical-align: top;">
            <table class="table table-striped table-bordered" >
                <thead>
                    <tr>
                        <td><b>Tarea</b></td>
                        <td><b>Termino</b></td>
                        <td><b>Estado</b></td>
                        <td><b>Responsable</b></td>
                    </tr>
                </thead>

                <tbody>
                    <tr ng-repeat="y in x.detalleProyecto track by $index">
                        <td style="vertical-align: top;">{{y.tarea}}</td>
                        <td style="vertical-align: top;">{{y.fecha_termino}}</td>
                        <td style="vertical-align: top;">{{y.estado}}</td>
                        <td style="vertical-align: top;">{{y.nombre_completo}}</td>
                    </tr>
                </tbody>
            </table>

            </td>
        </tr>
    </tbody>
</table>

我不知道代码有什么问题,我想我可能以错误的方式检索 angulajs 中的数据?

【问题讨论】:

  • 我不知道代码有什么问题:如果您无法判断问题是什么,我们如何帮助解决它?告诉你希望你的代码做什么,然后告诉它做什么。 then() 回调函数中的代码没有多大意义。你应该重新考虑一下。
  • 尝试调试你的代码。可以在http.get.then()里面放console.log (response.data)看看有没有数据。如果有,则查看 datos1 是否具有该值。慢慢地,你会到达一个你会发现故障的地步。
  • @sachilaranawaka plnker 不工作

标签: html angularjs arrays json


【解决方案1】:

看起来每个 datos1 的 detalleProyecto 都需要 tarea、fecha_termino、estado 和 nombre_completo,这些都缺失了。 而且我不明白你为什么需要“$scope.detalleProyecto”。所以我省略了。

for 至少应该是这个才能工作!

for(var i = 0; i < $scope.datos1.length; i++){
    var currentObj = $scope.datos1[i];
    currentObj.TareasObj = {tarea : currentObj.tarea ,  fecha_termino: currentObj.fecha_termino, estado:currentObj.estado, nombre_completo: currentObj.nombre_completo};
    currentObj.detalleProyecto = currentObj.TareasObj;
}

【讨论】:

  • 我认为您必须将 currentObj.TareasObj 推入 currentObj.detalleProyecto 数组。 currentObj.detalleProyecto.push(currentObj.TareasObj);
  • 谢谢!我能够存储我现在在 TareasObj 中提到的值的数据,但我仍然无法在视图中显示它们>.
  • currentObj 没有键 'TareasObj' 或 'detalleProyecto'。它不是一个数组,所以我认为它应该没问题。它只会添加新的键值对。
【解决方案2】:
for(var i = 0; i < $scope.datos1.length; i++){
    var currentObj = $scope.datos1[i];
    $scope.datos1[i].detalleProyecto = [{
        "tarea":currentObj.tarea , 
        "fecha_termino":currentObj.fecha_termino , 
        "estado":currentObj.estado, 
        "nombre_completo":currentObj.nombre_completo
    }];
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-22
    • 1970-01-01
    • 2021-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-03
    • 1970-01-01
    相关资源
    最近更新 更多