Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJS$http.get php文件-$injector:modulerr_Javascript_Php_Angularjs - Fatal编程技术网

Javascript AngularJS$http.get php文件-$injector:modulerr

Javascript AngularJS$http.get php文件-$injector:modulerr,javascript,php,angularjs,Javascript,Php,Angularjs,我有一个文件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)) { ar

我有一个文件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]$injector/modulerr?p0=instantSearch&p1=E…larjs.org%2F1.2.15%2F%24injector%2Fnomod%3Fp0%3DinstantSearch%0A%20%20%20%……1)

这是一个令人费解的回答

而这一个是为了回应#2


意外令牌
。这是来自:

$scope.items = [
      image : data['icon'],
您应该使用
$scope.items={…}
,因为您需要的是具有键值对的JavaScript对象,而不是数组

您似乎还希望循环
数据
,并将项目推送到阵列上:

$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']}
 ];

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

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

令人敬畏的是,现在已经得到了错误的帮助,没有用数据['icon']填充任何内容,所以将其切换到数据[1],现在它在每个字段中填充{“id”:“4”,“icon”:“advil.jpg”,“english”:“ASS+c1a Pharma”,“british”:“Abelitan”}有什么方法更新吗?很抱歉,我没有完全跟上你的步伐。。。下面的响应似乎能够理解错误,但还不能100%正常工作。将我的代码更改为您提供的代码并没有得到错误的帮助,也没有更改输出。还有其他建议吗?非常感谢您的回复@Travis也许你可以设置一个JSFIDLE来演奏wiht?老实说,我不知道我可以用小提琴来演奏,但是是的,我现在就试试!