2016-06-02 5 views
1

Я создаю приложение для динамической загрузки и отображения данных из базы данных в AngularJS, но когда я пытаюсь получить доступ к моему ASP.Net (веб-службе ASP.NET) (используя $ http.get()), я получаю ошибки: TypeError: $ http.get (...). then (...). контроллер не является функцией Пожалуйста, помогите ....

контроллер код:

.controller("studentsController", function ($scope, $http) { 
    $http.get("StudentService.asmx/GetAllStudents") 
     .then(function (response) { 
      $scope.students = response.data; 
    }) 

students.html код:

<h1>List of Students</</h1> 
<ul> 
    <li ng-repeat="student in students"> 
      {{student.name}} 
    </li> 
</ul> 
+1

Можете ли вы [изменить] добавить немного больше кода, где вы определяете контроллер? Основываясь на сообщении об ошибке, он выглядит как код выше, у него есть синтаксическая ошибка, поэтому ваш '.controller' устанавливается на результат обещания дальше кода – Rhumborl

+0

Он похож на ваш угловой модуль, где вы называете' .controller (..) 'не определяется должным образом –

ответ

1

Сначала убедитесь, что ваш веб-сервис работает правильно.

Изменить код контроллера следующим образом:

angular.module('myapp') 
.controller("studentsController",['$scope', '$http', function (scope, http) { 
    http.get("StudentService.asmx/GetAllStudents") 
     .success(function(data) { 
      scope.students = data; 
     }) 
     .error(function(data, status) { 
      console.error('Response error', status, data); 
     }) 
}]); 

Не тестировался, но должен работать.

+0

После выполнения изменений кода контроллера приложение работает нормально .. спасибо :) – user6413469

1

Вам необходимо ввести сервисы $ http в угловом сервисе и от контроллера, выполнить его настройку и позвонить в веб-службу. или вы можете обернуть свой код внутри (function() {(ваш угловой контроллер)})().

+1

Я считаю, что OP уже делает это, иначе' $ http.get() 'не будет определено. – Rhumborl