Angularjs 安圭拉酒店;Firebase-更改时重新绘制ng重复

Angularjs 安圭拉酒店;Firebase-更改时重新绘制ng重复,angularjs,firebase,Angularjs,Firebase,我有一个与Firebase同步的非常简单的控制器 .controller('SchedulesCtrl', ['$scope', '$firebase', function($scope, $firebase) { var ref = new Firebase("https://blah.firebase.io/schedules/110/2014-10-04/1"); var sync = $firebase(ref); $scope.schedules =

我有一个与Firebase同步的非常简单的控制器

.controller('SchedulesCtrl', ['$scope', '$firebase',
            function($scope, $firebase) {
  var ref = new Firebase("https://blah.firebase.io/schedules/110/2014-10-04/1");
  var sync = $firebase(ref);
  $scope.schedules = sync.$asArray();
}]);
这将填充我的ng重复:

<ul>
    <li ng-repeat="schedule in schedules | orderBy:'start_date_time'" class="class-current class-single scale-fade repeated-item">
        <div class="col-sm-2">
            <div class="class-shortname">{{schedule.class_short_name}}</div>
        </div>
        <div class="col-sm-10 class-name">{{schedule.class_name}}</div>
        <div class="col-sm-5">
            <div class="class-time">
                {{schedule.start_date_time | date: "h:mma"}}-{{schedule.end_date_time | date: "h:mma"}}
            </div>
        </div>
        <div class="col-sm-5">
            <div class="class-instructor">{{schedule.staff_first_name}}</div>
            <div class="class-checkedin">{{schedule.staff_last_name}}</div>
        </div>
    </li>
</ul>
  • {{schedule.class_short_name} {{schedule.class_name} {{schedule.start_date_time}日期:“h:mma”}-{{schedule.end_date_time}日期:“h:mma”} {{日程安排.员工姓名} {{日程安排.员工姓氏}
ng repeat使用一些动画在我的所有课程中滑动。然后在我的Angular应用程序之外更新此Firebase中的数据,并在应用程序中反映更改

这两种方法都很好,数据会立即更新,但我希望我的整个ng repeat离开,然后在Firebase中的数据更改时进入。i、 e

  • Firebase中的数据更改
  • 整个ng repeat以奇特的动画离开
  • 整个ng重复以奇特的动画重新进入-更新的数据

  • 我已经把数据和动画部分记下来了,但是当我的Firebase数据更改时,我如何告诉Angular离开和进入(这些是ngAnimate的方法)我的ng repeat?

    你可以使用
    $watch
    跟踪Firebase数据更改

    只需将ng repeat填充代码包装到
    $watch
    方法中:

    var unwatch = obj.$watch(function() {
      console.log("data changed!");
    });
    
    如果以后要通过调用
    unwatch()

    摘自


    若要通过
    ngAnimate
    将动画指定给数组的重新填充,您可能需要查看
    ngAnimate
    文档。

    什么是
    离开
    输入
    ?您是否在询问当firebase中的数据发生更改时如何得到通知,以便您可以获取和显示更新的数据?我相信正在引用的是
    enter
    leave
    事件/方法。在控制器中创建一个刷新方法,为$scope.schedules分配新值,请记住,如果您在Angular之外更改数据,那么您的更改必须在$applyYes内,输入和离开是ngAnimate方法。我是这么说的。这将是罚单。以下是Angularfire文件供大家参考: