Joh*_*her 12
以下是我认为最佳做法:
这保持了数据服务层,业务逻辑和前端UI之间的良好分离.它还将任何一层更改的后果限制为其他层.
Joe*_*ino 11
您可以使用任一资源,也可以构建实现http调用的服务.
如果您想使用资源,请记住:
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();
});
}
Run Code Online (Sandbox Code Playgroud)
或者,如果您需要更深层次的粒度,请使用服务,例如
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; }
};
});
Run Code Online (Sandbox Code Playgroud)
我发现服务很棒,因为它能够在控制器之间共享数据,因此您可以将它们注入控制器中
myapp.controller('MyController', function($scope, MyAPIService){
$scope.data = MyAPIService.data();
// etc.
});
Run Code Online (Sandbox Code Playgroud)