我的查询搜索餐厅在其数据库中拥有的所有菜肴。

<?php
include('base.php');
$data = array();
$result = mysql_query("SELECT nombre FROM platos WHERE tipo = 'principal'",$connect);
if(mysql_num_rows($result) > 0){
    while($row = mysql_fetch_assoc($result)){
        $data[] = $row;
    }
} else {
    echo "0 results";
};
echo json_encode($data);
mysql_close($connect);
?>


所以然后我在角度代码上调用它:

$http({
      method: 'GET',
      url: '../../php/getDishesPrincipal.php'
    }).then(function successCallback(response) {
        $scope.principals = response.data;
    }, function errorCallback(response) {
        $scope.principals = 'No Response';
    });


好吧,最后我将其打印在我的html代码上:

<div id="agregarpedido_table_item" ng-repeat="principal in principals">
   <p id="agregarpedido_table_item_p">{{principal.nombre}}</p>
   <div id="agregarpedido_table_item_command">
     <p>{{principal.cant}}</p>
     <div class="selectors">
       <input type="button" value="+" ng-click="principal.cant = principal.cant + 1">
       <input type="button" value="-" ng-click="principal.cant = principal.cant - 1">
     </div>
   </div>




问题是,当在我的数据库中,有超过2个与tipo:principal相匹配的结果时,html消失了,并且没有显示任何内容。更糟糕的是,控制台不会像正常一样抛出任何错误。有任何想法吗?

最佳答案

由于由于SQL查询而只返回一个名称数组,因此angular可能会在ng-repeat内部抛出无重复错误。

尝试像这样格式化ng-repeat:ng-repeat="principal in principals track by $index"

您的主体可能有2个或更多非唯一名称,因此angular不会造成重复错误。作为参考,使用$ index跟踪方法可以帮助提高循环中的渲染/绑定性能。

这是一个jsbin https://jsbin.com/noxawusoqe/2/edit?html,js,console,output

希望能奏效

关于php - 当列出3时,ANGULARJS结果消失,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42218491/

10-10 19:19