1

I've been unable to retrieve data from a json or php file because angular keeps yelling at me that either the function or response is undefined.

I want to pull up the navigation items from MySQL, when it failed to load php I've put the contents in a regular json file to see what was the problem it seems something in angular itself.

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

Which results in:

[{"nav_id":"0","nav_name":"Home","nav_link":""}, {"nav_id":"1","nav_name":"Contact","nav_link":"contact"}]

So far so good?

Here's my angular code that gets the file:

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

});


})();

When I load the page it first gives me the error response and after that the success response... in the console angular tells me this:

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

whats wrong about this? I can't seem to figure it out...

1 Answer 1

1

The problem is that you are not passing error callback function properly. It should be:

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

Otherwise you just invoke alert immediately (note ()) and since it doesn't return anything (so it "returns" undefined) error handler receives undefined in it. However, it expects a function. That's why you get this error.

Sign up to request clarification or add additional context in comments.

1 Comment

Thanks alot..! now I can continue my CRUD operations!

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.