加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – 指令不能”要求:ngRepeat’

发布时间:2020-12-17 17:53:31 所属栏目:安全 来源:网络整理
导读:我写下面的指令,以便在UI上呈现ngRepeat元素时调用函数. 指示 directives.directive('repeatDone',function() { return { restrict: 'A',require: 'ngRepeat',link: function(scope,element,attrs,ngModel) { if (scope.$last) { scope.$eval(attrs.repeatDo
我写下面的指令,以便在UI上呈现ngRepeat元素时调用函数.

指示

directives.directive('repeatDone',function() {
    return {
        restrict: 'A',require: 'ngRepeat',link: function(scope,element,attrs,ngModel) {
            if (scope.$last) {
                scope.$eval(attrs.repeatDone);
            }
        }
    };
});

但它给出了$compile错误.
如果我删除需要的部分,它可以正常工作.

为什么AngularJS不能接受“require:’ngRepeat’”?
帮助会很感激.

解决方法

require用于访问另一个指令的控制器.但是ng-repeat没有控制器.看一下 source的ng-repeat,单词控制器甚至没有出现在代码中. documentation也没有提到ng-repeat的控制器.

通常,当您使用require时,因为您想要调用所需控制器的功能.在你的指令的link函数中,你添加了参数ngModel – 如果它存在,它将被控制器填充.但是你永远不会在代码中使用这个ngModel参数.在这种情况下,为什么你需要完全使用需求并不是很清楚.

编辑:

在进一步审查时,也许你正在尝试要求ng-repeat,因为你的repeat-done指令不能在ng-repeat的上下文之外工作.如果这是原因,另一个解决方案可能是遍历DOM,查看repeat-done指令的父元素,看看它们是否具有属性’ng-repeat’.如果找不到,您的指令可能会抛出错误.但这似乎更多的代码与投资回报很少……

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读