angular.module('snswMock').factory('snswService', ['$http','$location' ,
function ($http, $location ) {
'use strict';
return {
getData: function(jsonData){
var jsonString = JSON.stringify(jsonData);
var serviceUrl = getServiceUrl();
$http({
url: serviceUrl,
dataType: 'string',
method: 'POST',
data: jsonString
}).success(function(response){
alert ("Success");
}).error(function(error){
alert ("Save company!");
});
},
getServiceUrl :function(){
var host = $location.host();
if (host === 'localhost') {
return $location.protocol() + '://' + host + ':9000/services/insert';
} else {
return $location.protocol() + '://' + host + '/services/insert';
}
}
}
}
]);
你对角度很新 这是我的服务
我在getServiceUrl
函数内调用getData
我收到以下错误
angular.js:11706 ReferenceError: getServiceUrl is not defined
任何人都可以帮助我如何调用该方法。是否有任何其他方式通过传递字符串作为发布请求来调用Web服务?
答案 0 :(得分:0)
您需要使用this
上下文来访问全局对象函数 - > this.getServiceUrl()
。在您的情况下,myFactory
是对象,在对象内部,使用this
上下文可以在对象范围内全局访问所有函数。
angular.module('snswMock').factory('snswService', ['$http', '$location', function($http, $location) {
'use strict';
var myFactory = {
getData: function(jsonData) {
var jsonString = JSON.stringify(jsonData);
var serviceUrl = this.getServiceUrl(); //modified
$http({
url: serviceUrl,
dataType: 'string',
method: 'POST',
data: jsonString
}).success(function(response) {
alert("Success");
}).error(function(error) {
alert("Save company!");
});
},
getServiceUrl: function() {
var host = $location.host();
if (host === 'localhost') {
return $location.protocol() + '://' + host + ':9000/services/insert';
} else {
return $location.protocol() + '://' + host + '/services/insert';
}
}
}
return myFactory;
}]);
答案 1 :(得分:0)
您尝试访问此服务的控制器,请执行以下操作。
在控制器中注入此服务。
如下所示调用此服务
snswService.getServiceUrl();