Angularjs 安圭拉酒店;Firebase-更改时重新绘制ng重复
我有一个与Firebase同步的非常简单的控制器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 =
.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数据更改时,我如何告诉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文件供大家参考: