Я пытаюсь заполнить массив в javascript данными, полученными из базы данных в PHP. Я сталкиваюсь с проблемами, поскольку массив не зацикливается и кажется пустым после запуска запроса.Сравнить значение в ng-repeat с значением php
Вот мой код:
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>
Все, что я пытаюсь сделать, это заполнить $ scope.favorites с массив вернулся из m мой PHP, а затем выполните цикл с помощью ng-repeat.
Вы должны использовать '$ http', или привязки данных сломаются. В частности, что-то вроде '$ http.get («/home/getAllFavoriteIds »)' и в обратном вызове успеха вы должны установить '$ scope.favorites = response.data' –
Невозможно вернуться с обратного вызова ajax в первую очередь. Ваша внешняя функция 'getAllFavorites' ничего не возвращает – charlietfl