我有3个文件:
app.js
angular.module("starweb", ["ngRoute", "ngAnimate", "ui.bootstrap"])
.config(function ($routeProvider) {
$routeProvider ....
addHostingController.js
angular.module("starweb")
.controller("addHostingCtrl", function ($scope, domainService) {
$scope.data.domains = domainService.getDomain();
}
domainService.js
angular.module("starweb")
.constant("domainList", "http://localhost:15536/api/product/xxxx")
.service("domainService", function ($http, $q,domainList) {
return ({
getDomain: GetDomains()
});
});
function GetDomains() {
$http.get(domainList).then(handleSuccess, handleError);
}
在页面源上,包含所有3个文件(首先是 app.js )。 Chrome会显示$http is undefined
,我的设置出了什么问题?
谢谢大家。
答案 0 :(得分:2)
GetDomains
函数无法访问domainService
范围,您已注入$http
服务。
您应该将代码更改为以下内容:
.service("domainService", function ($http, $q, domainList) {
return {
getDomain: function (handleSuccess, handleError) {
$http.get(domainList).then(handleSuccess, handleError);
}
};
});
您还应该定义handleSuccess
和handleError
回调,这肯定是getDomain
函数的参数。