【问题标题】:Angular $http - function/response undefinedAngular $http - 功能/响应未定义
【发布时间】:2015-07-26 13:56:51
【问题描述】:

我无法从 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"}]

到目前为止一切顺利吗?

这是我获取文件的角度代码:

(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'));

});


})();

当我加载页面时,它首先给我错误响应,然后成功响应......在控制台角度告诉我:

错误:[ng:areq] http://errors.angularjs.org/1.4.2/ng/areq?p0=fn&p1=not%20a%20function%2C%20got%20undefined

这有什么问题吗?看不懂。。。

【问题讨论】:

    标签: php angularjs httprequest


    【解决方案1】:

    问题是您没有正确传递错误回调函数。应该是:

    .error(function() {
        alert('error') 
    });
    

    否则,您只需立即调用alert(注意()),因为它不返回任何内容(因此它“返回”undefinederror 处理程序在其中接收undefined。但是,它需要一个函数。这就是您收到此错误的原因。

    【讨论】:

    • 非常感谢..!现在我可以继续我的 CRUD 操作了!
    • 酷,很高兴它有帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多