背景:我正在开发一个“事件目录”网站。
我使用 json 编码创建了一个 php 页面,以将我的数据写为 json 文件。对于那件事我没有任何疑问。一切正常。我的意思是我可以毫无问题地循环显示我的主页中的数据。
当我想访问那里的个人详细信息时,问题就开始了。
我的变量只是无法识别我希望她确定范围的数据。这很奇怪,因为我在另一个项目上使用了相同的方法,但无论如何效果很好。这是我的代码,我希望我的范围采用(例如)我的标题值,我做错了什么或者我该如何进行过度?
真的,非常感谢您在对 Google 进行大量研究和数小时思考我的问题之后所花费的时间。在这里发布我的问题真的是我最后的选择。然而,这是我的第一次。
我尝试使用 $rootScope & $routeParams 而不是 $scope 但这也不起作用。还尝试使用 $location 和 ngSanitize,但我不明白我在做什么,我从未使用过。我已经控制台记录了曾经存在的所有内容,哈哈。
我不确定我是否必须运行(参见最后一部分)这些元素,但我尝试了很多东西。
这是我的 Google Chrome 控制台返回的错误:
TypeError:无法读取新的未定义的属性“标题”(myRoutes.js:350)
PS:第 350 行是“$scope.title = $scope.events[$scope.eventID].title;”所在的行 是写的。
这是我的 Firefox 控制台返回的错误:
类型错误:“$scope.events[$scope.eventID] 未定义”myRoutes.js:350 Angular 20
<div ng-view="" class="ng-scope">
注意:我的 console.log($scope.eventID) 正确返回了我想要的数字。但是对于标题和所有内容,他只是说它是未定义的。
我几乎看不出问题出在哪里,但我只是不知道如何解决它。再次感谢您的宝贵时间。已经问了很多关于json数据显示错误的问题,但是我使用的方法无法解决这种情况。
PS:我知道 AngularJS 已经过时了。我稍后会学习 Angular,但不能正确知道。
.controller('detailsCtrl', function($scope, $http, $rootScope, $routeParams){
$http.get('partials/allEvents.php') // On récupère le contenu du fichier php
.then(function(res){
$scope.events = res.data;
});
$scope.eventID = $routeParams.eventID;
console.log($scope.eventID);
$scope.title = $scope.events[$scope.eventID].title;
$scope.image = $scope.events[$scope.eventID].image;
$scope.area = $scope.events[$scope.eventID].area;
$scope.city = $scope.events[$scope.eventID].city;
$scope.theme = $scope.events[$scope.eventID].theme;
$scope.type = $scope.events[$scope.eventID].type;
$scope.beginDate = $scope.events[$scope.eventID].beginDate;
$scope.endDate = $scope.events[$scope.eventID].endDate;
$scope.numberOfVisitors = $scope.events[$scope.eventID].numberOfVisitors;
$scope.shortBio = $scope.events[$scope.eventID].shortBio;
$scope.longBio = $scope.events[$scope.eventID].longBio;
console.log($scope.title);
//$scope.title = $scope.events[$scope.eventID].title;
//$scope.title = $scope.events[$scope.eventID].title;
})
//这是我试图显示数据的页面:
<div ng-controller="detailsCtrl">
<h1>{{title}}</h1>
<h1>{{events.title}}</h1>
<h1>{{event.title}}</h1>
</div>
//这是我的代码,在我的 $routeProvider 之前(不用担心):
var leCalendrierDuGeek = angular.module('leCalendrierDuGeek', ['ngRoute']);
leCalendrierDuGeek.run(function($rootScope, $http){
//array initialised
$rootScope.events=[];
$http.get("partials/allEvents.php")
.then(function(response) {
$rootScope.events = response.data;
console.log($rootScope.events);
});
});