Page 233 - AngularJS权威教程
P. 233
18.26 从 AngularFire 开始 213
们把它作为依赖项注入到控制器和服务中。 1
angular.module('myapp', ['firebase'])
.controller("MyController", ["$scope", "$firebase",
function($scope, $firebase) { 2
// 把控制器的定义写在这里
}
]); 3
$firebase服务带有一个参数:Firebase引用。
FirebaseRef(Firebase引用) 4
Firebase引用告诉$firebase数据存在哪里,如何连接。 $firebase服务处理与Angular的同步,
并且是我们调用方法保存变更的地方。 5
这个对象有多个方法,我们可以用来与远程数据交互。这些方法在下面详细列出,都是以$
符号开头的(例如,$add()、$save()),都可以在这个对象上使用。 6
注意,对象的变更不会引起远程数据的变更。
7
为了把本地对象模型同步到远程的Firebase引用,我们使用服务的方法,并且传入一个
Firebase对象的实例。例如,要把$scope.items模型同步到我们的ng-newsletter项,运行如下 8
方法:
angular.module('myApp') 9
.controller("MyController", function($scope, $firebase) {
// Firebase URL
var URL = "https://ng-newsletter.firebase.com";
// 同步$scope上的items 10
$scope.items = $firebase(new Firebase(URL + '/items'));
});
11
至此,我们可以简单地跟$scope.items对象交互,这样可以同步我们的Angular模型和
Firebase。
12
18.26.5 数据同步
13
我们可以使用下面$firebase对象提供的这些方法来把数据同步到Firebase。
1. $add(value)
14
$add方法带有单个任意类型的参数。它把这个值添加为一个按照时间排序的列表成员。我们
可以把这个看作是在Firebase引用数组上调用.push(value)。
15
注意,Firebase引用对象并不真的是个数组,但是可以把它当成像数组那样用。
例如,我们可以在Firebase引用的/foo端点上添加一个字符串“bar”: 16
$scope.items.$add({foo: "bar"});
17
2. $remove(key)
$remove方法从Firebase上移除远程的子引用。它带有单个可选参数。
18