TypeError: (intermediate value)(intermediate value).success is not a function (angular)

kkdeveloper7 picture kkdeveloper7 · May 8, 2015 · Viewed 38.4k times · Source

I have difficulties understanding this error... I dont quite understand why its not a function....

angular.module('mkApp').factory('mkService', function ($http, $log) {
  function getLookUp(successcb) {
    $http = ({
        method: 'GET',
        url: 'api/Entries/'

    }).success(function (data, status, header, config) {
        successcb(data);
    }).
    error(function (data, status, header, config) {
        $log, warn(data, status, header, config);
    });
  };

  return {
    lookUp: getLookUp
  }
});

angular.module('mkApp').controller('mkControler', function ($scope, mkService) {
  mkService.lookUp(function (data) {
    $scope.ddl = data;
    console.log(ddl);

  });
});

And here is my HTML

<div ng-app="mkApp">
    <div ng-controller="mkControler">            
       <table>
           <tr>
               <td> First Name</td>
               <td> Last Name</td>
           </tr>
           <tr>
               <td><input type="text" /></td>
               <td><input type="text" /></td>
           </tr>
           <tr>
               <td>
                   <select></select>
               </td>
           </tr>
       </table>

    </div>
</div>

My idea is to use data to populate drop down. It does bring me XML back. Any help please i've been looking everywhere now. Thank you.

Answer

Pankaj Parkar picture Pankaj Parkar · May 8, 2015

Your $http call code should be $http({ instead of $http = ({ and also $log, warn should be $log.warn

Code

$http({
    method: 'GET',
    url: 'api/Entries/'
}).success(function (data, status, header, config) {
    successcb(data);
}).
error(function (data, status, header, config) {
    $log.warn(data, status, header, config);
});