AngularJS 服务不工作
AngularJS Service not working
我一直在开发一个简单的 AngularJS 应用程序。我需要为它实现一个名为 'countryservice' 的自定义服务。以下是我的代码。
var countryApp = angular.module('countryApp', []);
countryApp.service('countryservice', function ($http) {
this.getallcountries = function ($http) {
$http.get('js/countries.json').success(function (data) {
return data;
});
}
});
countryApp.controller('CountryCtrl', function ($http, $scope, countryservice) {
$scope.countries = countryservice.getallcountries($http);
});
不幸的是,由于某些原因此代码不起作用。但想不通为什么。当我在不创建自己的自定义服务的情况下做同样的事情时,它工作正常。以下是未实现自定义服务的代码。这个很好用。
var countryApp = angular.module('countryApp', []);
countryApp.controller('CountryCtrl', function ($scope, $http) {
$http.get('js/countries.json').success(function (data) {
$scope.countries = data;
});
});
任何人都可以帮助我解决我的自定义服务做错的地方吗?
尝试在 $http
之前使用 return
countryApp.service('countryservice', function ($http) {
this.getallcountries = function ($http) {
return $http.get('js/countries.json').success(function (data) {
return data;
});
}
});
然后在控制器中
countryApp.controller('CountryCtrl', function ($scope, countryservice) {
countryservice.getallcountries().then(function(resp) {
$scope.countries = resp.data;
})
});
countryApp.service('countryservice', function ($http) {
var service = {};
service.getallcountries = function ($http) {
var response;
$http.get('js/countries.json').success(function (data) {
response = data;
});
return response;
}
return service;
});
这与我所做的类似。
getallcountries
服务方法应该 return $http.get
生成的承诺如下:
var countryApp = angular.module('countryApp', []);
countryApp.service('countryservice', function ($http) {
this.getallcountries = function () {
return $http.get('js/countries.json');
}
});
countryApp.controller('CountryCtrl', function ($scope, countryservice) {
countryservice.getallcountries().success(function(data) {
$scope.countries = data;
});
});
另外,请注意您不必向控制器注入 $http
服务。
尝试应该试试这个:
countryApp.service('countryservice', function ($http) {
this.getallcountries = function () {
return $http.get('js/countries.json');
}
});
在控制器中:
countryApp.controller('CountryCtrl', function ($scope, countryservice) {
countryservice.getallcountries().then(function(resp) {
$scope.countries = resp.data;
})
});
我一直在开发一个简单的 AngularJS 应用程序。我需要为它实现一个名为 'countryservice' 的自定义服务。以下是我的代码。
var countryApp = angular.module('countryApp', []);
countryApp.service('countryservice', function ($http) {
this.getallcountries = function ($http) {
$http.get('js/countries.json').success(function (data) {
return data;
});
}
});
countryApp.controller('CountryCtrl', function ($http, $scope, countryservice) {
$scope.countries = countryservice.getallcountries($http);
});
不幸的是,由于某些原因此代码不起作用。但想不通为什么。当我在不创建自己的自定义服务的情况下做同样的事情时,它工作正常。以下是未实现自定义服务的代码。这个很好用。
var countryApp = angular.module('countryApp', []);
countryApp.controller('CountryCtrl', function ($scope, $http) {
$http.get('js/countries.json').success(function (data) {
$scope.countries = data;
});
});
任何人都可以帮助我解决我的自定义服务做错的地方吗?
尝试在 $http
之前使用 returncountryApp.service('countryservice', function ($http) {
this.getallcountries = function ($http) {
return $http.get('js/countries.json').success(function (data) {
return data;
});
}
});
然后在控制器中
countryApp.controller('CountryCtrl', function ($scope, countryservice) {
countryservice.getallcountries().then(function(resp) {
$scope.countries = resp.data;
})
});
countryApp.service('countryservice', function ($http) {
var service = {};
service.getallcountries = function ($http) {
var response;
$http.get('js/countries.json').success(function (data) {
response = data;
});
return response;
}
return service;
});
这与我所做的类似。
getallcountries
服务方法应该 return $http.get
生成的承诺如下:
var countryApp = angular.module('countryApp', []);
countryApp.service('countryservice', function ($http) {
this.getallcountries = function () {
return $http.get('js/countries.json');
}
});
countryApp.controller('CountryCtrl', function ($scope, countryservice) {
countryservice.getallcountries().success(function(data) {
$scope.countries = data;
});
});
另外,请注意您不必向控制器注入 $http
服务。
尝试应该试试这个:
countryApp.service('countryservice', function ($http) {
this.getallcountries = function () {
return $http.get('js/countries.json');
}
});
在控制器中:
countryApp.controller('CountryCtrl', function ($scope, countryservice) {
countryservice.getallcountries().then(function(resp) {
$scope.countries = resp.data;
})
});