[英]Angularjs & PHP JSON / ng-init / ng-repeat
im trying to ng-repeat from return php json result.But i have some error codes =) 我正在尝试从返回的PHP json结果中进行ng-repeat。但是我有一些错误代码=)
angular.min.js:117 Error: [$parse:ueoe] ** Sorry for my english. angular.min.js:117错误:[$ parse:ueoe] **对不起,我的英语。
JSON result: JSON结果:
[{"id":"1","fullname":"Ad Soyad","email":"test@windowslive.com","tel":"12332123","message":"Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.","time":"12/05/2016","picture":"assets/admin/layout3/img/avatar1.jpg","isread":"1"},
{"id":"2","fullname":"Mahmut Tuncer","email":"test@windowslive.com","tel":"1233211","message":"Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.","time":"12/05/2016","picture":"assets/admin/layout3/img/avatar1.jpg","isread":"1"}]
a.php a.php
$datacontactform = $sorgu = $dbquery->multisorgu('contactform');
<ul ng-init="contactlist = <?php echo $datacontactform; ?>">
<li ng-repeat="data in contactlist"> {{data.fullname}}</li>
</ul>
b.php b.php
public function multisorgu($tablo,$where = null, $orderby = null, $limit = null){
// MYSQL JSON RESULT
global $Baglan;
$sorgu = mysqli_query($Baglan, "SELECT * FROM $tablo $where $orderby $limit");
$result = array();
if(mysqli_num_rows($sorgu) > 0){
while($bak = mysqli_fetch_assoc($sorgu)){
$result[] = $bak;
}
}
//UTF-8 JSON_UNESCAPED_UNICODE
$json_response = json_encode($result,JSON_UNESCAPED_UNICODE);
return $json_response;
}
1. Why get error: 1.为什么会出错:
<ul ng-init="contactlist = <?php echo $datacontactform; ?>">
This line fires the error, as it likes ng-init=" contactlist = somestring "
, but what ng-init except likes ng-init=" contactlist = someobject"
. 这行引发错误,因为它喜欢ng-init=" contactlist = somestring "
,但是ng-init除外的是喜欢ng-init=" contactlist = someobject"
。
2. Solution: 2.解决方案:
If use angular way, Ajax is a nice chooice. 如果使用角度方式, Ajax是不错的选择。
If not, try this: 如果没有,请尝试以下操作:
$datacontactform = $sorgu = $dbquery->multisorgu('contactform');
?>
<script type="text/javascript">
var datacontactform = JSON.parse('<?php echo $datacontactform; ?>');
</script>
<ul ng-init="contactlist = datacontactform ">
<li ng-repeat="data in contactlist"> {{data.fullname}}</li>
</ul>
Any problems let me know plz. 任何问题都让我知道。 Hope it works. 希望它能工作。
I presume you're getting JSON String instead of Object in PHP variable. 我想您在PHP变量中得到的是JSON String而不是Object。 You could use JSON.parse method to parse a string into an object & If you're getting valid response from PHP, it should work. 您可以使用JSON.parse方法将字符串解析为对象,并且如果您从PHP获得有效的响应,它应该可以工作。 In Below example, I just hard coded JSON
object within Controller for reference. 在下面的示例中,我只是在Controller内对JSON
对象进行了硬编码以供参考。
<!DOCTYPE html>
<html ng-app="mainApp" lang="en">
<head>
<title>JSON PHP</title>
<script src="angular.min.js"></script>
</head>
<script>
var app = angular.module('mainApp', []);
app.controller('MyCtrlr', function ($scope, $http) {
//Store your JSON Response
$scope.jsonResp = [{"id":"1","fullname":"Ad Soyad","email":"test@windowslive.com","tel":"12332123","message":"Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.","time":"12/05/2016","picture":"assets/admin/layout3/img/avatar1.jpg","isread":"1"},
{"id":"2","fullname":"Mahmut Tuncer","email":"test@windowslive.com","tel":"1233211","message":"Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.","time":"12/05/2016","picture":"assets/admin/layout3/img/avatar1.jpg","isread":"1"}];
//});
});
</script>
<body>
<div ng-controller="MyCtrlr">
<ul ng-init="contactlist = jsonResp">
<li ng-repeat="data in contactlist"> {{data.fullname}}</li>
</ul>
</div>
</body>
</html>
Thank you for help guys. 谢谢你们的帮助。 but i cant work 但我不能工作
im trying to this way but now i cant work this json with ng-repeat.. 我试图以这种方式,但现在我无法使用ng-repeat来工作。
<script type="text/javascript">
app.factory('jsonparse',function(){
datacontactform = JSON.parse('<?php echo $datacontactform ?>');
return datacontactform;
})
mycontroller : mycontroller:
$scope.cd = datacontactform;
console.log($scope.cd);
console result : 控制台结果:
Object {1: Object, 2: Object} 1:Object email:"tester@windowslive.com" fullname:"tester tester" id:"1" isread:"1" message: "Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat." picture:"assets/admin/layout3/img/avatar1.jpg" tel:"123123123" time:"12/05/2016" __proto__: 2:Object email:"tester@windowslive.com" fullname:"tester tester" id:"1" isread:"1" message: "Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat." picture:"assets/admin/layout3/img/avatar1.jpg" tel:"123123123" time:"12/05/2016" __proto__:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.