我正在尝试使用从PHP中的数据库获取的数据来填充javascript中的数组。我遇到了问题,因为数组没有循环,并且在运行查询后似乎是空的。
这是我的代码:
PHP
public function getAllFavorites() {
$json = array();
$query = $this -> db -> get("favorites");
$count = $query -> num_rows();
foreach ($query -> result() as $row) {
array_push($json, $row -> product_id);
}
echo json_encode($json);
}
JAVASCRIPT
app.controller("MainController", function($scope, $http){
$scope.favorites = getAllFavorites();
});
var getAllFavorites = function() {
$.get("/home/getAllFavoriteIds", function(response){
return response;
});
}
HTML
<div ng-controller="MainController">
<ul>
<li ng-repeat="favorite in favorites">{{favorite}}</li>
</ul>
</div>
我要做的就是用我的PHP返回的数组填充$ scope.favorites,然后使用ng-repeat循环。
答案 0 :(得分:1)
您的JS存在问题。您的代码需要从getAllFavorites()
同步返回数据,但该函数不会返回任何内容。使用$ http拨打电话,它会给你一个承诺。您可以使用该承诺在客户端获取数据时进行响应。
app.controller("MainController", function($scope, $http){
var getAllFavorites = function() {
return $http.get("/home/getAllFavoriteIds"); // This should really be done in a service
};
getAllFavorites().then(function(response){
$scope.favorites = response.data;
});
});