Page 167 - AngularJS权威教程
P. 167
15.18 设置 Restangular 147
OPTIONS和PATCH。 1
author.get(); // GET/authors/abc123
author.getList('books');// GET/authors/abc123/books
author.put(); // PUT/authors/abc123 2
author.post(); // POST/authors/abc123
author.remove(); // DELETE/authors/abc123
author.head(); // HEAD/authors/abc123 3
author.trace(); // TRACE/authors/abc123
author.options(); // OPTIONS/authors/abc123
author.patch(); // PATCH/author/abc123
4
如果后端服务器映射资源的方式和我们预期的不符,Restangular也支持自定义HTTP方法。
例如,如果我们想得到作者的传记(不是RESTful资源),可以使用customMETHOD()函数设 5
置URL(METHOD可以被下面的方法替代:GET、 GETLIST、DELETE、POST、PUT、HEAD、
OPTIONS、PATCH、TRACE):
6
// 映射一个GET到/users/abc123/biography的请求
author.customGET("biography");
// 或者带有一个新bio对象的POST 7
// as {body: "Ari's bio"}
// 中间的两空字段是
// 参数字段或任意自定义头部 8
author.customPOST({body: 'Ari\'s Bio'},// post body
"biography", // 路由
{}, // 自定义参数
{}); // 自定义头部 9
15.17.2 自定义查询参数和头 10
每一个HTTP方法都可以自定义查询参数和头。
11
为了添加自定义查询参数,需要添加一个JavaScript对象,将其作为第二个参数添加到我们的
方法调用中,还可以再添加一个JavaScript对象作为第三个参数。最重要的是,在资源上调用这些
方法会将这两个参数作为可选参数。 12
使用了自定义查询参数,一个post方法看起来像这样:
13
var queryParamObj = { role: 'admin' },
headerObj = { 'x-user': 'admin' };
messages.getList('accounts', queryParamObj, headerObj); 14
Restangular使用起来难以置信地方便,因此我们可以集中精力在构建应用上,而不需要和这
些API较劲。 15
15.18 设置 Restangular 16
Restangular具有高度的可定制性,可以根据应用的需要进行相应的设置。每个属性都有默认 17
值,所以我们也无需在不必要的情况下对其进行设置。
Restangular可以在几个不同的地方进行设置,比如全局或自定义服务中。 18