gpt4 book ai didi

javascript - 从 Angular 范围的 php 文件中获取 json 数据

转载 作者:可可西里 更新时间:2023-10-31 23:05:34 26 4
gpt4 key购买 nike

我正在尝试从 php 文件中获取 json 数据以在 Angular Controller 中使用。我在 php 文件中回显 json_encode(pg_fetch_assoc($result)); 并且当我在 Angular Controller 中 console.log($scope.contents); 它带回json 数据,但是当我尝试执行 ng-repeat

时它返回为空

controllers.js:

myApp.controller('ContentCtrl', function ($scope, $http) {
$http({method: 'GET', url: 'content.php'}).success(function(data) {
$scope.contents = data;
});
});

content.php:

<?php
require_once("sdb.php");
$result = pg_query($dbconn, "SELECT * FROM content ORDER BY name ASC");
echo json_encode(pg_fetch_assoc($result));

index.php:

<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" href="css/style.css"/>
</head>
<body ng-app="myApp">
<div ng-controller="ContentCtrl">
<ul>
<li ng-repeat="content in contents">
<a href="#">{{content.name}}</a>
</li>
</ul>
</div>
</body>
<script src="js/jquery-1.10.2.js"></script>
<script src="js/angular.min.js"></script>
<script src="js/controllers.js"></script>
</html>

最佳答案

您实际上希望以 JSON 格式发送数据。为此,您只需在 echo 语句之前添加 header('Content-Type: application/json');。所以 content.php 变成:

<?php
require_once("sdb.php");

$result = pg_query($dbconn, "SELECT * FROM content ORDER BY name ASC");

header('Content-Type: application/json');
echo json_encode(pg_fetch_assoc($result));

顺便说一句,您可能想用 Controller 做一些事情。我会改变这个:

myApp.controller('ContentCtrl', function ($scope, $http) {
$http({method: 'GET', url: 'content.php'}).success(function(data) {
$scope.contents = data;
});
});

为此:

myApp.controller('ContentCtrl', ['$scope', '$http', function ($scope, $http) {
$http.get('content.php')
.success(function(data) {
$scope.contents = data;
});
}]);

函数定义前的附加'$scope', '$http', 允许你在未来缩小,.get 只是个人喜好,但我认为它读起来更干净。

关于javascript - 从 Angular 范围的 php 文件中获取 json 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25064570/

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