Angular 是一个非常强大和流行的前端框架。在 Angular 应用中,我们常常需要使用 RESTful API 进行数据交互。而使用 $resource 可以更方便地进行 RESTful 调用。
$resource 简介
$resource 是 Angular 中一个用于定义 RESTful 资源的服务。它可以让我们更简单地定义 RESTful API 的 URL、HTTP 方法和参数,并将其转换为对应的接口函数。
在使用 $resource 前,我们需要在应用模块中注入 $resource 服务:
angular.module('myApp', ['ngResource'])
$resource 的 API
$resource 在定义 RESTful API 时提供了一些方便易用的 API。
$resource(url, [paramDefaults], [actions], [options])
$resource 最常用的形式是:
$resource(url, [paramDefaults], [actions], [options])
其中,url 表示 API 的 URL,paramDefaults 表示 URL 参数的默认值,actions 表示可调用的接口函数和方法,options 是一个选项对象。
$resource 对象常用的 API
- 查询数据:$query
$resource(url).query([queryParams], [successCallback], [errorCallback]);
这个方法可以用于查询列表数据。query 方法发送一个 GET 请求到服务器,并返回一个数组。
- 获取单个数据:$get
$resource(url).get([queryParams], [successCallback], [errorCallback]);
这个方法用于获取一个对象。get 方法发送一个 GET 请求到服务器,返回一个单一的对象。
- 创建数据:$save
$resource(url).save(data, [successCallback], [errorCallback]);
这个方法用于创建一个数据对象。save 方法发送一个 POST 请求到服务器。
- 更新数据:$update
$resource(url).update([queryParams], data, [successCallback], [errorCallback]);
这个方法用于更新数据。update 方法发送一个 PUT 请求到服务器。
- 删除数据:$delete
$resource(url).delete([queryParams], [successCallback], [errorCallback]);
这个方法用于删除数据。delete 方法发送一个 DELETE 请求到服务器。
自定义 API
我们也可以通过 $resource 来定义自己的 API。$resource 定义 API 的语法:
$resource(url, {}, { myApi: { method: 'GET', url: '/myApiUrl' } });
其中,myApi 是自定义的 API 名称,method 表示 HTTP 方法,url 表示 API 的 URL。
示例代码
以下是一个使用 $resource 的示例代码:
// javascriptcn.com 代码示例 angular.module('myApp', ['ngResource']) .factory('User', function($resource) { return $resource('/api/users/:id', {id: '@id'}, { update: { method: 'PUT' } }); }) .controller('MyController', function(User) { var vm = this; vm.users = User.query(); vm.addUser = function(user) { User.save(user, function(res) { vm.users.push(res); }); }; vm.deleteUser = function(id) { User.delete({id: id}, function() { vm.users = _.filter(vm.users, function(user) { return user.id !== id; }); }); } })
在这个例子中,我们定义了一个 User 对象,并使用 query 方法获取了用户列表。我们还定义了添加用户和删除用户的方法,其中 addUser 方法使用了 save 方法,deleteUser 方法使用了 delete 方法。
总结
$resource 在 Angular 中进行 RESTful 调用,是 Angular 中非常方便易用的一种方式。通过深入地了解 $resource,我们可以更好地进行 RESTful API 的开发。写出更好的 Angular 应用。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6528c0197d4982a6ebb4dfea