http的自定义服务不起作用
custom service for http not working
我定义了一个自定义服务,用于发出$http请求,如下所示:
app.factory("ajaxCall",["$http",'$q',function($http,$q){
return {
getData : function(url){
var deferred = $q.defer();
$http.get(url).then(function(data)
{
deferred.resolve(data);
})
return deferred.promise;
}
}
}]);
我使用这项服务在我的决心像:
resolve:{
tableData: function(ajaxCall){
return {
ajaxCall.getData({/* A Url */}); //line a
}
}
}
但它给了我一个错误:a行出现意外标识符。我做错了什么?
$http.get(url)
希望url
是字符串,但您正试图将该字符串包装在{}
中
此外,resolve
语法不正确。
尝试
resolve: {
tableData: function(ajaxCall) {
return ajaxCall.getData( /* A Url */ );
}
}
此外,您在工厂中使用了一个promise反模式,可以简化为:
app.factory("ajaxCall", ["$http", '$q',
function($http, $q) {
return {
getData: function(url) {
return $http.get(url).then(function(response) {
return response.data;
});
};
}
}
]);
确保您编写了有效的javascript(您有太多的大括号):
resolve: {
tableData: function(ajaxCall) {
return ajaxCall.getData('http://....');
}
}
U可以使用app.factory或app.service。例如:
app.factory('service', ['$http', function ($http) {
return {
save: function (data) {
return $http({
url: 'your url is here',
method: 'POST',
data: data
})
},
};
}]);
然后在角度控制器中:
$scope.addButtonClick = function () {
var info = {};
info ["Id"] = $scope.Id;
info ["name"] = $scope.name;
info ["pwd"] = $scope.pwd;
service.save(info )
.success(function (data) {
$scope.reset();
})
.error(function (xhr) {
$ngBootbox.alert('Error in saving data');
});
}
}
相关文章:
- 监视函数从服务返回不起作用,但作用域函数起作用
- 角度控制器服务承诺不起作用
- 为什么从 Angular 服务中的对象中删除此元素不起作用
- 对SOAP服务的Preflight OPTIONS请求不起作用
- http的自定义服务不起作用
- AngularJs 简单的自定义服务不起作用
- 静态内容服务在快递中不起作用
- 为什么Angular的$http.get服务不起作用
- 移动 Web 服务不起作用
- 为什么当服务注入第二个控制器时,AngularJS 1.4.8 应用程序不起作用
- Firefox Addon Builder首选项-服务对我不起作用--为什么
- 从本地文件获取JSON的角度服务不起作用
- 角度模态>Ctrl+gt;服务>Ctrl继承不起作用
- Angular ui路由器在服务中保存到状态名称不起作用
- Angular Toast在我的服务中不起作用
- Azure移动服务javascript SDK在Firefox中不起作用
- 方法POST在向REST服务发送请求时不起作用
- Javascript web服务请求不起作用
- 在AngularJS服务中显示模块模式的Javascript不起作用
- 谷歌地图API的方向服务;不起作用