2017-02-22 41 views
0

Я не могу заставить URL-адрес работать через мою службу, хотя я могу заставить его работать в браузере.http get request не работает в угловой 1

«$ http()», похоже, не вызвано. Появляется первое предупреждение(), но это все.

Это то, что вернуться в браузер для URL = http://localhost:8080/myapp/students

[{ "ID": 1, "имя": "Денис", "курсы": [{ "ID": 1,» name ":" mycourse "}]}]

Может кто-нибудь сделать какие-то предложения относительно того, что я делаю неправильно?

studentform.js:

"use strict"; 
angular.module('StudentApp',[]); 
angular.module('StudentApp').service('StudentModel', [function($http){ 
    this.students = [{name:"NONE"},{name:"NONE2"}]; 
    this.getStudents = function(){ 
     alert("getStudents called."); 
     $http({method: 'GET', url: 'http://localhost:8080/myapp/students'}). 
      then(function(data, status, headers, config){ 
       alert("Success!!"); 
       this.students = data; 
      }). 
      catch(function(data, status, headers, config){ 
       alert("Failed!!"); 
       console.log("Error: " + status); 
      }); 
//  $http.get('http://localhost:8080/myapp/students') 
//  .then(function (response) { 
//   this.students = response.data; 
//  }. bind(this), function (response) { 
//   console.log(response.data); 
//  }); 
//  $http.get('http://localhost:8080/myapp/students') 
//  .then(function(response){ 
//   alert("in then"); 
//   alert(response.date); 
//   this.students = response.data; 
//  }.bind(this),function(response){ 
//   alert("in bind"); 
//   console.log(response.data); 
//  }); 
//  alert(response.data); 
    } 
}]); 
angular.module('StudentApp').controller('StudentController', ['StudentModel', function(StudentModel){ 
    this.model = StudentModel; 
}]); 

studentform.jsp

<!DOCTYPE html> 
<html ng-app="StudentApp"> 
<head> 
    <meta charset="UTF-8"> 
    <script src="/myapp/resources/js/angular/angular.js"></script> 
    <script src="/myapp/resources/js/studentform.js"></script> 
    <title>Students</title> 
</head> 
<body ng-controller="StudentController as main"> 
    <div> 
     <p><button ng-click="main.model.getStudents()">Get Students</button></p> 
     <ul> 
      <li ng-repeat="student in main.model.students"> 
       {{student.name}} 
      </li> 
     </ul> 
    </div> 
</body> 
</html> 
+0

Какова ошибка, которую вы получаете? и Что показывают инструменты разработчика вашего браузера? –

+0

Я не получаю никаких ошибок, это часть проблемы. У меня есть вызовы alert(), где они должны появляться, но они не появляются ни по успеху, ни по ошибке. Все, что я вижу, это «getStudents called» alert, а затем ничего. Я использую firefox с firebug. – DenisMP

+0

Можете ли вы создать plnkr для проблемы? –

ответ

0

Вы забыли добавить $http как зависимость

Измените определение сервиса на код ниже:

angular.module('StudentApp').service('StudentModel', ['$http', function($http){ 
+0

Спасибо, что я прошел мимо этой проблемы. Спасибо. – DenisMP