检测指令中的 ng-repeat 元素长度变化
Posted
技术标签:
【中文标题】检测指令中的 ng-repeat 元素长度变化【英文标题】:Detect ng-repeat elements length change in directive 【发布时间】:2017-10-16 00:09:37 【问题描述】:我有 angular-sly-carousel 指令和一些数据。当用户向下滚动时,我的数据正在添加,所以滚动后我需要重新加载狡猾的轮播选项。
如何检测 ng-repeat 元素的长度何时发生变化?
我的源代码,当我应该检测 ng-repeat 元素长度变化时(不起作用)。
<li sly-horizontal-repeat-simple ng-repeat="game in value | limitTo: gamesLimit track by game.id">
...
</li>
VBET5.directive('slyHorizontalRepeatSimple', function($timeout,$window)
return
restrict: 'A',
link: function(scope, el, attrs)
if (scope.$last === true)
$timeout(function()
var cont = $(el[0]);
var frame = $(el[0]).parent();
// Call Sly on frame
$(window).on("resize", function()
frame.sly("reload");
);
// Watch , if items in ng-repeat change length then reload
scope.$watch('value', function()
frame.sly("reload"); // I need reload sly when el chang
);
);
);
【问题讨论】:
【参考方案1】:您必须将范围变量而不是 element.length。如果 Scope.variable 得到修改,将触发监视触发器。
$scope.$watch(
function ()
return $scope.value;
,
function (newValue, oldValue)
if (!angular.equals(oldValue, newValue))
$scope.text = 'Your value now =' + $scope.value;
,
true);
【讨论】:
嗯,在我的情况下如何使用它? 更新代码和注释。 完成。你能检查一下吗? 谢谢,你拯救了我的一天:)以上是关于检测指令中的 ng-repeat 元素长度变化的主要内容,如果未能解决你的问题,请参考以下文章
如何从其他`ng-repeat`元素获取`data`到当前元素指令