Page 165 - AngularJS权威教程
P. 165

15.17 使用 Restangular   145


                      // GET /users/abc123/inboxes                                                   1
                      user.getList('inboxes');
                  });

                  从上面可以看出,Restangular非常聪明,知道如何根据在Restangular源对象上调用的方法来                               2
              构造URL。但设置拉取数据的URL是很方便的,特别是当后端不支持纯粹的RESTful API时。

                  通过向allUrl方法传入一个独立的参数来指定请求的URL:                                                     3

                  // 搜索的所有URL都将使用
                  // `http://google.com/`asthebaseUrl                                                4
                  var searches =
                      Restangular.allUrl('one', 'http://google.com/');
                  // 将发送一个请求到GET http://google.com/
                  searches.getList();                                                                5
                  另外也可以通过oneURL方法针对特定的请求,设置基础URL而不是操作整个请求:
                                                                                                     6
                  var singleSearch =
                      Restangular.oneUrl('betaSearch', 'http://beta.google.com/1');

                  // 触发一个请求到GET http://google.com/1                                                  7
                  singleSearch.get();
                                                                                                     8
              15.17 使用 Restangular


                  现在我们已经可以操作Restangular对象了,下面我们来用它发送请求吧。                                             9

                  当Restangular将初始化的对象返回给我们后,可以通过几种不同的方法与后端API进行交互。
                                                                                                     10
                  假设我们创建了一个Restangular对象代表公共讨论列表:

                  var messages = Restangular.all('messages');
                                                                                                     11
                  通过这个对象,可以使用getList()来获取所有信息。getList()方法返回了一个集合,其
              中包含了可以用来操作特定集合的方法。
                                                                                                     12
                  // 所有消息都是一个将被resolve成所有消息列表的promise
                  var allMessages = messages.getList();
                                                                                                     13
                  同样可以使用Restangular对象来创建信息。使用post()方法来创建message对象。

                  post方法可以接受一个必要参数,参数类型是对象,并向指定的URL发送一个POST请求。                                       14
              我们也可以向请求中添加查询参数和头。

                  // POST到/messages                                                                  15
                  var newMessage = {
                      body: 'Hello world'
                  };
                  messages.post(newMessage);                                                         16
                  // 或者我们将在一个元素上调用这个函数
                  // 以创建嵌套的资源
                  var message = Restangular.one('messages', 'abc123'); message.post('replies', newMessage);   17
                  由于Restangular返回promise对象,我们可以调用promise对象上的方法,因此我们可以在
              promise对象完成时运行函数。                                                                      18
   160   161   162   163   164   165   166   167   168   169   170