zoukankan      html  css  js  c++  java
  • AngularJS中的$resource

    来源:http://docs.angularjs.org/api/ngResource.$resource

    个人翻译。

    ngResource模块的服务。

    描述

    创建资源对象的工厂。该资源对象允许你与RESTful服务端数据资源进行交互。

    返回的资源对象拥有提供了高层行为的动作方法,从而无需与底层的$http服务进行交互。

    需要安装ngResource模块。

    依赖

    $http

    使用

    $resource(url[, paramDefaults][, actions]);

    参数

    参数名 类型 详情
    url string

    参数以【:】为前缀的参数化的URL模板,例如【/user/:username】。

    如果url带有后缀,则直接添加。例如【http://example.com/:id.json】,甚至是【http://example.com/resource/:resource_id.:format】。

    paramDefaults

    【可选】

    Object

    url参数中的默认值。可在action方法中被覆盖。

    若任一参数为函数,则每当一次请求需要获取参数值时,都将被执行(除非参数被覆盖)。

    参数对象中的每个键值对,若在url模板中存在则会被首先绑定,多余的键将被添加到url搜索查询(?之后)。

    给定模板【/path/:verb】与参数【{verb:'greet', salutation:'Hello'}】,将得到URL【/path/greet?salutation=Hello】。

    若参数值以【@】作为前缀,则该参数的值将被从data对象中取出(用于非GET操作)。

    actions

    【可选】

    Object

    声明扩展默认资源动作集合的自定义动作的声明集合。声明应以$http.config的格式创建:

    {action1: {method:?, params:?, isArray:?, headers:?, ...},
     action2: {method:?, params:?, isArray:?, headers:?, ...},
     ...}

    其中:

    action - {string} - 动作名。该名称成为你的资源对象的方法名。

    method – {string} – HTTP请求方法。合法的方法包括GET, POST, PUT, DELETE和JSONP。

    params – {Object=} – 本动作提前绑定的参数的可选集合。若任一参数为函数,则每当一次请求需要获取参数值时,都将被执行(除非参数被覆盖)。

    url – {string} – 动作特定url覆盖。支持url模板,与资源级别url相似。

    isArray – {boolean=} – 本动作的返回对象是一个数组,则为真。

    【以下略】

    返回

    返回一个资源“类”对象。该对象包含默认资源动作的方法,和可选的自定义的扩展动作。默认集合包含以下动作:

    { 'get':    {method:'GET'},
      'save':   {method:'POST'},
      'query':  {method:'GET', isArray:true},
      'remove': {method:'DELETE'},
      'delete': {method:'DELETE'} };

    调用这些方法将以特定的http方法、目标和参数调用ng.$http。数据从服务器返回后,该对象将是该资源类的一个实例。save,remove,delete动作($前缀)可作为该对象的方法使用。这允许你很容易地对服务器端数据进行CRUD操作,如:

    var User = $resource('/user/:userId', {userId:'@id'});
    var user = User.get({userId:123}, function() {
    user.abc = true;
    user.$save();
    });

    调用$resource对象的方法将立即返回一个空引用(对象或数组依isArray而定)。数据一旦从服务器返回,该引用将填充具体的数据。这是一个有用的技巧,因为资源通常被赋给一个模型,模型随即被视图渲染。一个空对象不会被渲染,而当数据从服务器返回,那么该对象将填充数据,视图会自动重新渲染、以显示新的数据。这意味着在多数情况下没有必要为动作方法写回调函数。

    类对象或实例对象中的动作方法可以用以下参数进行调用:

    HTTP GET “类”动作: Resource.action([parameters], [success], [error])
    non-GET “类”动作: Resource.action([parameters], postData, [success], [error])
    non-GET 实例动作: instance.$action([parameters], [success], [error])

    Success回调以(value, responseHeaders)参数调用。Error回调以(httpResponse)参数回调。

    【以下略】

  • 相关阅读:
    Codeforces 1316B String Modification
    Codeforces 1305C Kuroni and Impossible Calculation
    Codeforces 1305B Kuroni and Simple Strings
    Codeforces 1321D Navigation System
    Codeforces 1321C Remove Adjacent
    Codeforces 1321B Journey Planning
    Operating systems Chapter 6
    Operating systems Chapter 5
    Abandoned country HDU
    Computer HDU
  • 原文地址:https://www.cnblogs.com/koukabatsugun/p/3442525.html
Copyright © 2011-2022 走看看