Page 234 - AngularJS权威教程
P. 234

214  第 18 章  服务器通信


                 key(可选,字符串类型)  如果我们提供了一个key参数(作为字符串),$remove()方法会
             移除这个key指向的子对象。如果没有提供key,它就会移除整个远程对象。
                 $scope.items.$remove("foo"); // 移除名为"foo"的子对象
                 $scope.items.$remove(); // 移除整个对象

                 3. $save(key)
                 $save方法使用Firebase数据存储同步本地元素上的所有变更,并且立即把它们推送到所有监
             听的客户端。它带有一个参数。

                 key(可选,字符串类型) 如果我们提供了key参数(字符串),$save方法会把对key指向的
             子元素的变更保存到Firebase。如果没有给$save()方法提供key,所有对这个对象的本地变更都
             会保存到Firebase。

                     $save()方法最常用于保存本地变更的模型。

                 $scope.items.foo = "baz";
                 $scope.items.$save("foo"); // 新的Firebase(URL + "/foo")现在包含了"baz"
                 4. $child(key)

                 $chile()方法为给定key指向的子对象创建了一个新的$firebase对象。这个方法带有单个
             参数:
                 key(字符串类型) key字符串被用于指向新创建的子对象。

                 var child = $scope.items.$child("foo");
                 // 等同于调用
                 // $scope.items.$remove("foo");
                 child.$remove();
                 5. $set(value)
                 $set()方法把这个对象的远程值覆盖为新值。 $set()方法也会将本地对象的版本更新为这
             个值。

                 它带有一个参数:
                 value (对象类型) value参数是本地对象的新值。 value覆盖了旧值,随后更新到这个新值。

                 $scope.items.$set({bar: "baz"}); // 新的Firebase(URL + "/foo")现在是null


             18.27 在 AngularFire 中排序

                 如果我们想要对远程对象排序,可以在调用$save()之前设置一个记录上的$priority字段,
             而不是简单地在本地用Angular的orderBy过滤器排序。

                 $scope.items.foo.$priority = 2;
                 $scope.items.$save("foo"); // 新的Firebase(URL + "foo")的优先级现在是2
                 $firebase服务默认返回一个简单的JavaScript对象。我们可以把这个对象转换为一个数组,
             简单地使用orderByPriority过滤器来排序。

                 这个过滤器把$firebase服务返回的对象转换成一个数组,根据Firebase定义的优先级来排
   229   230   231   232   233   234   235   236   237   238   239