ng-repeat的{{$ index}},在angular指令的链接器函数之后计算得出$编译吗?

【字号: 日期:2024-04-11浏览:28作者:雯心
(adsbygoogle = window.adsbygoogle || []).push({}); 如何解决ng-repeat的{{$ index}},在angular指令的链接器函数之后计算得出$编译吗??

如果您确实需要填充ID,则可以在其中运行相关代码,scope.$evalAsync或者$timeout确保绑定已首先更新。我建议您尽量避免使用DOM来检查DOM,而应使用模型来获取这些信息scope.$index。

您的指令在到达链接功能时已经处于编译过程中,并且在达到链接功能时已被链接,因此我认为重新编译无济于事。这只是等待足够长的时间来完成链接并开始$digest实际更新属性的情况。这正是您所$evalAsync要做的。

此处的示例:http ://plnkr.co/edit/n77x4C?p=preview

解决方法

html

<div repeater ng-repeat=’item in items’ class=’first’ id = ’{{$index}}’ > {{item}} </div>

angularjs指令:-

angular.module(’time’,[]) .directive(’repeater’,function() { var linkFn = function(scope,element,attrs){ var id = $(element).attr(’id’); alert(id); // {{$index}} } ...

在ng-repeat内部创建的动态ID,当在内部指令中引发时显示为{{$ index}},而不是value = 0、1、2 …

如何确保指令中的Linker函数执行动态ID时使用?我认为可以在指令中使用$compile来完成。但是我不知道怎么办?

$compile(element)(scope)

是语法。但是显然是错误的顺序。

相关文章: