如何解决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)
是语法。但是显然是错误的顺序。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。