AngularJS $http.get php file - $injector:modulerr

AngularJS $http.get php file - $injector:modulerr

本文关键字:injector modulerr php http get AngularJS file      更新时间:2023-09-26

我有这个文件api.php

require_once 'db.php';
$con = mysql_connect($host,$user,$pass);
$dbs = mysql_select_db($databaseName, $con);
$query=mysql_query("SELECT * FROM $tableName") or die(mysql_error());
$arr[];
while($obj = mysql_fetch_object($query)) {
    array_push($arr, $obj);
}
echo $json_response = json_encode($arr);

它正在获取我需要的所有数据。

然后我尝试将这些数据放入我的$scope中。。。

// The controller
function InstantSearchController($scope, $http){
 $http.get('api.php').success(function(data) {
     $scope.items = data;
     $scope.items = [
          image : data['icon'],
          english : data['english'],
          british : data['british']
     ];
 });
}

但如果我像这样对数据进行硬编码,这确实有效。

function InstantSearchController($scope){
  $scope.items = [
    {
      english: 'English A',
      british: 'British A',
      image: 'images/advil.jpg'
    },
    {
      english: 'English B',
      british: 'British B',
      image: 'images/advil.jpg'
    }
    ]
}    

这是我在控制台中看到的错误

未捕获的语法错误:意外的标记:js/angular。js:44未捕获错误:[$injector:modulerr]http://errors.angularjs.org/1.2.15/$injector/modulerr?p0=instantSearch&p1=E.…larjs.org%2F1.25%2F%24注射器%2Fremod%3Fp0%3DinstantSearch%0A%20%20%20%。。。。。。1)

这是小提琴尝试响应#1

http://jsfiddle.net/XgsWU/

这是针对响应#2 的

http://jsfiddle.net/JGjyS/

对于稍后可能阅读本文的任何人,我发现我的问题出现在我的控制器调用中,我已经对此进行了更改/更新,它运行得很好!

app.controller('InstantSearchController', ['$scope', '$http', function($scope, $http) {
     $http.get('inc/api.php').success(function(itemData) {
     $scope.items = itemData;
   });
}]);

意外的令牌:。这是来自:

$scope.items = [
      image : data['icon'],

您应该使用$scope.items = {...},因为您想要一个具有键值对的JavaScript对象,而不是一个数组。

看起来您还想在data上循环并将项目推送到阵列上:

$scope.items = [];
data.forEach(function (datum) {
    $scope.items.push({
        image: datum.icon,
        english: datum.english,
        british: datbum.british,
    });
});

此处出现语法错误:

$scope.items = [
      image : data['icon'],
      english : data['english'],
      british : data['british']
 ];

应该是:

$scope.items = [
      {image : data['icon'],
      english : data['english'],
      british : data['british']}
 ];