除了 ng-repeat 之外,我之前通过创建一个要使用的自定义指令来完成此操作。所以例如
<div ng-repeat="foo in bar" myDirective>
这给你的是,myDirective
你可以访问指令的范围并检查 ng-repeat 渲染中的最后一项。例如,这就是我在 ng-repeat 渲染的某些元素上使用 isotope jquery 库所拥有的:
angular
.module('myModule')
.directive('myDirective', function ($timeout) {
return {
restrict: 'A',
link: function postLink(scope, element, attrs) {
if (attrs.ngRepeat && scope.$last) {
$timeout(function() {
$('#myContainer').isotope({
layoutMode: 'fitRows'
});
});
}
}
};
});
这与 html 一起使用,例如:
<div id="myContainer" ng-repeat="foo in bar" myDirective>
<div class="element">{{foo}}</div>
</div>
应该给你你正在寻找的东西。
只需$('#myContainer').isotope({})
在 ng-repeat 完成渲染重复时替换为您要执行的内容。