从哪里应用REST API请求从角度js调用
即从控制器,模块,服务,工厂.我完全混淆了应该是正确的方式?
您可以使用
resources或构建实现http呼叫的服务.
如果要使用资源,请记住:
>以包含可以找到的angular-resource.js文件here
>在你的模块声明中包含ngResource模块依赖关系,如:angular.module(‘myApp’,[‘ngResource’])
之后,您可以以这种方式声明资源:
function MyController($scope,$resource){
var User = $resource('/user/:userId',{userId:'@id'});
var user = User.get({userId:123},function() {
user.abc = true;
user.$save();
});
}
或者,如果需要更深层次的粒度,请使用服务
angular.module('myApp')
.factory('MyAPIService',function($http){
var apiurl,myData;
return {
getData: function(){
$http.get(apiurl)
.success(function(data,status,config,headers){
myData = data;
})
.error(function(){ //handler errors here
});
},data: function() { return myData; }
};
});
我发现服务是伟大的,因为能够在控制器之间共享数据,所以你可以将它们注入控制器
myapp.controller('MyController',function($scope,MyAPIService){
$scope.data = MyAPIService.data();
// etc.
});