我需要将php中数组的数据添加到Angular JS中。我试过了:
HTML
<? foreach ($new->images as $val): ?>
<div ng-init="func(<?=$val?>)"></div>
<? endforeach; ?>
Angular JS:
$scope.addToSlide = function (src, desc){
obj = {};
obj.src = src;
obj.desc = desc;
$scope.photos.push(obj);
};
最好的办法是什么?
答案 0 :(得分:1)
ng-init并非真正用于您要做的事情。该手册明确指出仅将其用作ng-repeat的一部分。
混合php和javascript充其量也是挑战。尝试用php返回json对象来思考更多。
还尝试将所需数据作为常量或值注入。类似的东西:
<script src="app.js"></script>
<script>
(function(angular) { 'use strict';
var appModule = angular.module('ceradSraApp');
appModule.constant('ceradApiPrefix','<?php echo $apiPrefix; ?>');
})(angular);
</script>
因此,ceradApiPrefix现在可以在任何需要的地方注入。在php中做任何你需要做的事情,把你的数据煮成一个回声。
答案 1 :(得分:0)
您是否尝试过以下操作?
<div ng-init="images = <?=$images ?>"></div>
答案 2 :(得分:0)
这是你对Angular所做的事情 - 从外面弄乱HTML。
Angular的方法是使用简单的Angular模板,并使用Angular的服务(例如$http
)来提取数据。
然后Angular的$http
将向您的服务器发送请求,您的PHP将使用Angular将接收和使用的数据(JSON)进行响应。
答案 3 :(得分:0)
我用php和angularjs制作了一些网络应用程序。我这样做的方法如下:
将数据从php传递到angular和html中的数组时。
我可以在php中使用这个脚本:
<?php
require_once '../config.php';
$id = $_GET['id_project'];
$query = "SELECT *
FROM `activity_planned` as A,`user` as U
WHERE A.id_user = U.id_user and A.id_project = $id";
$answer = $mysqli->query($query);
$result = array();
foreach( $answer as $row ){
array_push($result,$row);
}
echo $json_response = json_encode($result);
?>
然后,调用此脚本的angular函数使用$ http服务:
$scope.getActivities = function() {
$http({
url: './scripts/getters/get-activities-by-project-id.php',
method: 'GET',
params: {
id_project: $stateParams.projectId
}
})
.success( function( response ) {
$scope.activities = response;
});
};
通过在html中使用ng-repeat指令,所有这些&#34;活动&#34;将显示:
<div ng-repeat="item in activities track by $index">
<p>{{item.id}}</p>
<p>{{item.name}}</p>
</div>
您需要将数组编码为json并在php中回显结果。
这&#34; echo&#34;将作为一个返回函数,$ scope函数中的response参数将从中接收数据。