我有一个ng-repeat
元素,如下所示:
<div ng-repeat="message in messages | limitTo: customVariable">
其中customVariable
在我的控制器中不断变化。每次更改customVariable
时,ng-repeat
元素的父/容器元素都会调整其高度,因为不同数量的messages
将通过过滤器。
当发生这种情况时,我需要得到父div的前后高度。我可以通过简单调用元素height()
方法获得之前的高度。为了能够获得后高,我需要一个回调,我可以在DOM更新之后通过limitTo
过滤器的更改传递一个函数。
如何注册这样的回调?如果messages
的基础数组(在本例中为ng-repeat
)发生更改,我可以使用找到的解决方案here。但在这种情况下,底层数组保持不变。
答案 0 :(得分:2)
使用as
保存过滤结果:
<div ng-repeat="message in messages | limitTo: customVariable as filteredMessages">
然后,您可以从控制器或指令内向此阵列添加观察程序,并对更改做出反应:
$scope.$watch(function() {
return $scope.filteredMessages;
}, function() {
// Do something
});