Angular JS数据响应未定义

时间:2017-09-12 06:15:14

标签: javascript angularjs node.js json-server

我是Angular JS的新手,我正在尝试使用JSON数据调用Rest API。当我运行HTTP-server时,我没有收到我的响应数据。

function contacts(contactsdata) {
    contactsdata.getcontacts().then(function(data) {
        this.contactsinfo = data;
    });
}

(function(){ 
    var mod = angular.module('myapp');
    mod.controller("contacts", contacts);
    mod.service("contactsdata", function($http) {   
        this.getcontacts = function(){
            var execute1 = $http.get('http://localhost:3000/contacts');
            var execute2 = execute1.then(function(response) {
                return response.data;
            })
            return execute2;
        }
    });
})();

2 个答案:

答案 0 :(得分:0)

您可以在服务中尝试此操作

       this.getcontacts = function(){
           return $http.get('http://localhost:3000/contacts');
       });

并用作

contactsdata.getcontacts().then(function(response){
    this.contactsinfo = response.data;
});

答案 1 :(得分:0)

这里几乎没有问题。

  1. 在初始化角度时需要传递空数组

    var mod = angular.module('myapp', []);

  2. 需要像这样在控制器中注入服务的依赖性

    mod.controller("contacts", ['$scope', 'contactsdata', contacts]);

  3. 您可以退回服务中的承诺,例如返回$http.get...&使用服务中的数据

  4. 
    
    function contacts($scope, contactsdata) {
      contactsdata.getcontacts().
      then(function(data) {
        console.log(data)
      });
    }
    
    
    (function() {
      var mod = angular.module('myapp', []);
      mod.controller("contacts", ['$scope', 'contactsdata', contacts]);
      mod.service("contactsdata", ['$http', function($http) {
        this.getcontacts = function() {
          return $http.get('https://jsonplaceholder.typicode.com/posts/1')
        }
      }])
    
    })();
    
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
    <div ng-app="myapp">
      <div ng-controller="contacts"></div>
    </div>
    &#13;
    &#13;
    &#13;