Page 164 - AngularJS权威教程
P. 164
144 第 15 章 同外界通信:XHR 和服务器通信
当然如果项目中使用了Bower,也可以用Bower来安装:
$ bower install restangular
Restangular依赖Lo-Dash或Underscore,因此为了确保Restangular可以正常运行,
需要引入这两个库中的一个。
如果通过Bower安装Restangular,Lo-Dash会同时被自动下载。
否则,可以通过jsDelivr 来引用lodash:
①
<script type="text/javascript"
src="//cdn.jsdelivr.net/lodash/2.1.0/lodash.compat.min.js">
</script>
也可以从http://lodash.com/上下载Lo-Dash或通过Bower安装它:
bower install--savelodash
然后在页面里引用脚本:
<script type="text/javascript"
src="/js/vendor/lodash/dist/lodash.min.js"></script>
同其他的AngularJS库一样,我们需要将restangular资源当作依赖加载进应用模块对象。
angular.module('myApp', ['restangular']);
完成后,就可以将Restangular服务注入到AngularJS对象中:
angular.module('myApp', [])
.factory('UserService', ['Restangular', function(Restangular) {
// 现在我们已经在UserService中访问了Restangular
}]);
15.16 Restangular 对象简介
通过Restangular有两种方式创建拉取数据的对象。可以为拉取数据的对象设置基础路由:
var User = Restangular.all('users');
这样设置Restangular服务会让所有的HTTP请求将/users路径作为根路径来拉取数据。例如,
调用上述对象的getList()方法会从/users拉取数据:
var allUsers = User.getList(); // GET /users
当然也可以通过单个对象来发送嵌套的请求,可以用唯一的ID来代替路由发送请求:
var oneUser = Restangular.one('users', 'abc123');
上面代码的效果是调用oneUser上的get()时向/users/abc123发送请求。
oneUser.get().then(function(user) {
——————————
① http://www.jsdelivr.com/#!lodash