Angular JS的数据响应undefined
我是Angular JS的新手,正在尝试使用JSON数据调用Rest API。 当我运行HTTP服务器,我没有得到我的回应数据。
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; } }); })();
你可以尝试这个服务
this.getcontacts = function(){ return $http.get('http://localhost:3000/contacts'); });
并用作
contactsdata.getcontacts().then(function(response){ this.contactsinfo = response.data; });
这里有几个问题。
-
需要像这样初始化angular度时传递一个空数组
var mod = angular.module('myapp', []);
-
需要像这样在控制器中注入服务的依赖关系
mod.controller("contacts", ['$scope', 'contactsdata', contacts]);
-
您可以从服务返回承诺,如
$http.get...
&使用服务中的数据
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>