gpt4 book ai didi

javascript - AngularJS/PHP - ng-repeat 从 php 获取数组没有显示任何内容

转载 作者:行者123 更新时间:2023-12-03 01:03:30 25 4
gpt4 key购买 nike

我在使用 ng-repeat 时遇到一些问题。

首先,我从数据库中获取一个 JSON 对象 (read.php)。并将其转换为javascript数组对象

var as = JSON.parse(data);
$scope.datadata = as;

我可以在控制台中很好地获得响应$scope.datadata,但在浏览器中什么也得不到。所以我使用了一个测试数组$scope.Picture_set,它正确地显示在浏览器中。我可以对我的代码执行什么操作才能通过 ng-repeat 显示数据库项目?

pic

读取.php

<?php

require 'lib.php';
$object = new CRUD();
$picturetb = $object->Read();

if (count($picturetb) > 0) {
$arr = [];
foreach ($picturetb as $key=>$picture) {
$arr[] = array('key' => $key, 'name' => $picture['Picture_Name']);
}
}
echo json_encode($arr);

?>

html

<body>
<div ng-app="mainApp" ng-controller="drawbackController" class="container-fluid">
<div class="sidenav">
<table>
<thead>
<tr>
<th>No. </th>
<th>PictureName</th>
</tr>
</thead>
<tbody>
<!-- fail -->
<tr ng-repeat="d in datadata">

<!-- success -->
<!-- <tr ng-repeat="d in Picture_set"> -->
<td> {{ d.key }} </td>
<td><a> {{ d.name }} </a></td>
</tr>
</tbody>
</table>

<br>
<div class="addPicture" id="addPicture"></div>
</div>


<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.3/angular.min.js"></script>
<script src="JS.js"></script>
</div>
</body>

JS.js

var mainApp = angular.module("mainApp", []);
mainApp.controller('drawbackController', function ($scope) {

$scope.datadata =[];

// READ records
$scope.readRecords = function () {
$.get("ajax/read.php", {}, function (data, status) {

console.log(data);
var as = JSON.parse(data);
$scope.datadata = as;

console.log($scope.Picture_set);
console.log($scope.datadata);

$(".addPicture").html($scope.datadata);
});
}
$scope.readRecords();

// a test array
$scope.Picture_set = [
{ 'name': 'picture1' },
{ 'name': 'picture2' },
{ 'name': 'picture3' },
{ 'name': 'picture4' },
{ 'name': 'picture5' }
];

});

最佳答案

您正在使用 jQuery 的 $.get 而不是 AngularJS 的 $http.get。因此,您的 $scope 不知道 $.get 回调中的更改。你可以..

  • 使用$http.get$scope将自动检测更改
  • 在当前代码中,将更改包含在 $scope.apply() 函数中

您可以read关于$scope.apply

关于javascript - AngularJS/PHP - ng-repeat 从 php 获取数组没有显示任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52511124/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com