【发布时间】:2017-10-22 22:20:19
【问题描述】:
我正在尝试执行主从页面。
我使用 $stateParams.id 来带来详细的数据。
问题是 $stateParams.id 作为数组返回。
这意味着,
如果数据是这样的:
{id: 1, name:'James'}, {id:2, name:'John'}
当 $stateParams.id 为 1,
那么返回的数据是ID:2。不是 ID:1,因为它是作为数组返回的,它被选为数组 [1]。
我认为这是因为 PHP 将数据作为 array() 返回。
我不知道在哪里修复:AngularJS 还是 PHP? (或者我可能完全错了!) 你会修哪一个?请给我建议。
[controller.js]
function ProjectCtrl($scope, $http, $timeout, $state, $stateParams, $location) {
$http.post("../crud/projects_read.php", {
})
.then(function(response){
$scope.projects = response.data;
$scope.project_data = $scope.projects[$stateParams.id];
});
};
[config.js]
.state('pjt.project_detail', {
url: "/project_detail/{id}",
templateUrl: 'views/project_detail.html',
data: { pageTitle: 'Project detail' },
controller: 'ProjectCtrl',
})
[projects_read.php]
<?php
require_once 'connect.php';
$query = $conn->query("SELECT * FROM `projects`") or die(mysqli_error());
$data = array();
while($row = $query->fetch_assoc()){
$data[] = $row;
}
}
echo json_encode($data);
?>
我的目标是:
$stateParams.id 将数据的 id 号匹配为字符串,而不是数组。
提前感谢您的支持!
【问题讨论】:
-
看不到你是如何从 url 获取数组的......真的没有意义
-
如果您只在页面上显示一个项目,请不要从服务器读取所有您的项目;调用一个采用
id并返回单个对象的API 方法。
标签: angularjs