对于我的生活,我无法提取和打印出我的数组中的数据。我已经在PHP中生成了JSON,并且我已经连接Angularjs来检索这些数据。 Chrome中的Angularjs开发工具告诉我,当我运行代码时,我有一个变量“user”,它是一个对象数组(见下文)。我向用户提供了一个rootScope变量“$ rootScope.user = data;”所以我可以得到它。我是个新人,所以这些都不是最好的做法。
{
user : [{"user_id":"1","firstname":"John","lastname":"Doe","email":"john.doe@email.com","age":"29","height":"74.5","weight":"200","gender":"M","birthdate":"2013-12-31","username":"john.doe","hash":"$2a$10$MECYLWuu6AwRxzBF\/CUys.AuqVm7Lf4BYRGezeusvLe6wNTkU3FEy"}]
}
这是我在同一页面上使用的ng-repeat
,显示上述“用户”在其范围内:
<ul id="biometrics" ng-repeat="info in user">
<li>Age: {{info.age}}</li>
</ul>
我做错了什么?也许我做错了什么。我是Angularjs的新手,至少可以说。
我尝试了所建议但无济于事。我只想尝试澄清我的代码/情况,以确保我没有搞砸。我想我可能不太清楚,因为这也是我第一次在StackOverflow上发帖。
这就是我的login.php文件返回的内容:
[{ “USER_ID”: “1”, “姓名”: “约翰”, “姓”: “Doe的”, “电子邮件”: “john.doe@email.com”, “年龄”: “29” , “高度”: “74.5”, “重量”: “200”, “性别”: “M”, “出生日期”: “2013-12-31”, “photoURL”: “john.doe.jpg”,”用户名 “:” john.doe”, “散列”: “$ 2A $ 10 $ MECYLWuu6AwRxzBF / CUys.AuqVm7Lf4BYRGezeusvLe6wNTkU3FEy”}]
这是我的登录控制器:
app.controller("LoginController", ['$scope', '$rootScope', '$http', '$location', function($scope, $rootScope, $http, $location) {
$scope.errorMessage = "Wrong password or username";
$scope.login = function() {
$http({
url: "./login.php",
method: "POST",
data: { cache: false, username: $scope.username, password: $scope.password },
headers : {'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8'}
}).success(function(data, status, headers, config) {
$rootScope.user = data;
$location.path('/dashboard');
}).error(function(data, status, headers, config) {
$scope.statusMessage = status;
alert($scope.errorMessage);
});
}
}]);
这是我认为的HTML:
<ul id="biometrics" ng-repeat="info in user">
<li>Age: {{info}}</li>
</ul>
当我尝试这个时我没有得到任何东西,我尝试了data.user并没有得到任何东西。
答案 0 :(得分:1)
如果您将数据放入$rootScope
,请执行以下操作:
$rootScope.user = data;
然后你应该在视图中使用$root
为模型添加前缀:
<ul id="biometrics" ng-repeat="(property, value) in $root.user[0]">
<li>{{property}}: {{value}}</li>
</ul>
答案 1 :(得分:0)
试试这个。
希望这个人能提供帮助
<ul ng-repeat="(key,value) in user[0]">
<li>{{key}} : {{value}}</li>
</ul>
答案 2 :(得分:0)
您的数据是一个包含1个元素(对象文字)的数组,需要作为数组引用。
您可以在$ http.success回调中执行1个快速修复:
$rootScope.user = data[0]; /* <-- notice the "[0]" to reference it as an array */
现在您可以在html中引用您的数据,如下所示:
<ul id="biometrics" ng-repeat="info in user">
<li>Age: {{info.age}}</li>
</ul>