Javascript AngularJS$http.get php文件-$injector:modulerr
我有一个文件api.phpJavascript 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
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?老实说,我不知道我可以用小提琴来演奏,但是是的,我现在就试试!