15.4. 定义和使用时的占位量


    两方面。一是在定义时,在其 URL 中可以使用变量引用的形式(类型于定义锚点路由时那样)。第二时定义默认 params ,即 GET 参数时,可以定义为引用 postData 中的某变量。比如我们这样改一下:

    1. var Book = $resource('/book/:id', {}, actions);
      var book = Book.read({id: '123'}, {}, function(response){
      console.log(response);
      });


    在 URL 中有一个 :id ,表示对 paramsid 这个变量的引用。因为 read 是一个 POST 请求,根据调用形式,第一个参数是 params ,第二个参数是 postData 。这样的调用结果就是,我们会发一个 POST 请求到如下地址, postData 为空:

    1. /book/123?_method=read


    再看默认的 params 中引用 postData 变量的形式:

    1. var Book = $resource('/book', {id: '@id'}, actions);
      var book = Book.read({title: 'xx'}, {id: '123'}, function(response){
      console.log(response);
      });


    这样会出一个 POST 请求, postData 内容中有一个 id 数据,访问的 URL 是:

    1. /book?_method=read&id=123&title=xx


    这两个机制也可以联合使用:

    1. var Book = $resource('/book/:id', {id: '@id'}, actions);
      var book = Book.read({title: 'xx'}, {id: '123'}, function(response){
      console.log(response);
      });


    结果就是出一个 POST 请求, postData 内容中有一个 id 数据,访问的 URL 是:

    1. /book/123?_method=read&title=xx