Angular $http - function/response 未定义
Angular $http - function/response undefined
我无法从 json 或 php 文件中检索数据,因为 angular 一直对我大喊函数或响应未定义。
我想从 MySQL 中提取导航项,当它加载失败时 php 我已将内容放入常规 json 文件中以查看是什么问题似乎在 angular 本身。
PHP:
<?php
header('Content-type:application/json');
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "dbname";
$conn = mysqli_connect($servername, $username, $password, $dbname);
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$sql = 'SELECT * FROM navigation';
$result = $conn->query($sql);
$emparray = array();
while($row = mysqli_fetch_assoc($result)) {
$emparray[] = $row;
}
echo json_encode($emparray);
$conn->close();
?>
这导致:
[{"nav_id":"0","nav_name":"Home","nav_link":""}, {"nav_id":"1","nav_name":"Contact","nav_link":"contact"}]
到目前为止还好吗?
这是我的 angular 获取文件的代码:
(function() {
var app = angular.module("headerControl", []);
app.directive("headerNavigation", function() {
return {
retrict:'E',
templateUrl:'views/partials/header-navigation.html'
};
});
app.controller("navController", function($scope, $http) {
$scope.navlist = {};
$http.get('phpservices/nav.php')
.success(function(response) {
alert('success');
})
.error(alert('error'));
});
})();
当我加载页面时,它首先给我错误响应,然后是成功响应...在控制台中 angular 告诉我:
错误:[ng:areq] http://errors.angularjs.org/1.4.2/ng/areq?p0=fn&p1=not%20a%20function%2C%20got%20undefined
这有什么问题吗?我似乎无法弄清楚...
问题是您没有正确传递错误回调函数。应该是:
.error(function() {
alert('error')
});
否则你只需立即调用 alert
(注意 ()
),因为它不会 return 任何东西(所以它 "returns" undefined
)error
处理程序在其中接收 undefined
。但是,它需要一个函数。这就是您收到此错误的原因。
我无法从 json 或 php 文件中检索数据,因为 angular 一直对我大喊函数或响应未定义。
我想从 MySQL 中提取导航项,当它加载失败时 php 我已将内容放入常规 json 文件中以查看是什么问题似乎在 angular 本身。
PHP:
<?php
header('Content-type:application/json');
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "dbname";
$conn = mysqli_connect($servername, $username, $password, $dbname);
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$sql = 'SELECT * FROM navigation';
$result = $conn->query($sql);
$emparray = array();
while($row = mysqli_fetch_assoc($result)) {
$emparray[] = $row;
}
echo json_encode($emparray);
$conn->close();
?>
这导致:
[{"nav_id":"0","nav_name":"Home","nav_link":""}, {"nav_id":"1","nav_name":"Contact","nav_link":"contact"}]
到目前为止还好吗?
这是我的 angular 获取文件的代码:
(function() {
var app = angular.module("headerControl", []);
app.directive("headerNavigation", function() {
return {
retrict:'E',
templateUrl:'views/partials/header-navigation.html'
};
});
app.controller("navController", function($scope, $http) {
$scope.navlist = {};
$http.get('phpservices/nav.php')
.success(function(response) {
alert('success');
})
.error(alert('error'));
});
})();
当我加载页面时,它首先给我错误响应,然后是成功响应...在控制台中 angular 告诉我:
错误:[ng:areq] http://errors.angularjs.org/1.4.2/ng/areq?p0=fn&p1=not%20a%20function%2C%20got%20undefined
这有什么问题吗?我似乎无法弄清楚...
问题是您没有正确传递错误回调函数。应该是:
.error(function() {
alert('error')
});
否则你只需立即调用 alert
(注意 ()
),因为它不会 return 任何东西(所以它 "returns" undefined
)error
处理程序在其中接收 undefined
。但是,它需要一个函数。这就是您收到此错误的原因。