在 ng-repeat 之后运行的指令

2024-01-01

我也有类似的问题ng-repeat 完成后调用函数 https://stackoverflow.com/questions/15207788/calling-a-function-when-ng-repeat-has-finished但我里面有指令和 ng-repeat 。

<my-dropdown>
  <li ng-repeat="item in items"><a>{{item.text}}</a></li>
</my-dropdown>

在我的下拉列表中,我在两个位置(一个用于列表,一个用于标题)放置了 ng-transclude,并且我需要向除使用 jQuery 的一个之外的所有项目添加 ng-hide 类。所以我需要有将在 ng-repeat 之后运行的代码。我尝试将指令中的优先级设置为 2000 或 0(ngRepeat 有 1000),但这不起作用。当我跑步时我有一件物品element.find('li');

return {
    restrict: 'E',
    require: '?ngModel',
    template: ['<div class="btn-group dropdown-button">',
               '  <div class="btn caption" ng-transclude></div>',
               '  <button class="btn dropdown-toggle" data-toggle="dropdown">',
               '    <span class="caret"></span>',
               '  </button>',
               '  <ul class="dropdown-menu" ng-transclude></ul>',
               '</div>'].join('\x0D'), // newline - peach replace newlines, gods only know why
    transclude: true,
    replace: true,
    compile: function(element, attrs, transclude) {
        // I've used compile because I wante to test the transclude function

        return function(scope, element, attrs, ngModelCtrl) {
            element.find('.caption li').attr('ng-hide', 'true');
            var selected_index = 0;
            function setValue(item) {
                var value = item.attr('value');
                ngModelCtrl.$setViewValue(value ? $interpolate(value)(scope) : item.index());
            }
            var caption = element.find('.caption');
            function update() {
                // for model with ng-repeat it return 1 item
                console.log(attrs.ngModel + ' ' + caption.find('li').length);
                caption.find('li').removeClass('ng-hide').not(':eq(' + selected_index + ')').addClass('ng-hide');
            }
            if (ngModelCtrl) {
                element.on('click', 'ul li', function() {
                    var self = $(this);
                    selected_index = self.index();
                    scope.$apply(function() {
                        setValue(self);
                    });
                    var selected = self.attr('selected');
                    if (selected) {
                        scope.$eval(selected);
                    }
                });

                if (!ngModelCtrl.$viewValue && attrs.placeholder) {
                    $('<li>' + attrs.placeholder + '</li>').appendTo(caption);
                    selected_index = caption.find('li').length-1;
                } else {
                    selected_index = ngModelCtrl.$viewValue || 0;
                }
                setValue(element.find('ul li:eq(' + selected_index + ')'));

                ngModelCtrl.$viewChangeListeners.push(function() {
                    scope.$eval(attrs.ngChange);
                    update();
                });
                ngModelCtrl.$render = function() {
                    if (!ngModelCtrl.$modelValue) {
                        selected_index = 0;
                        update();
                    } else {
                        $(element).find('ul li').each(function(i) {
                            var self = $(this);
                            var value = self.attr('value');
                            if (value && ngModelCtrl.$modelValue == $interpolate(value)(scope) ||
                                ngModelCtrl.$modelValue == i) {
                                selected_index = i;
                                update();
                                return false;
                            }
                        });
                    }
                };
            }
            update();
        };
    }
}

None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 ng-repeat 之后运行的指令 的相关文章

随机推荐

  • 如何将命名参数传递给 Rake 任务?

    有没有一种方法可以在不使用环境变量的情况下将命名参数传递给 Rake 任务 我知道 Rake 任务可以接受两种格式的参数 环境变量 rake my task foo bar 这将创建一个名为的环境变量foo和价值bar可以在 Rake 任务
  • 无法使用打字稿访问另一个控制器中的一个控制器中声明的 $rootscope 属性

    我已经在 ts 文件中声明了 rootscope 自定义属性 如下所示 module MyApp Entity export interface IRootScope extends ng IRootScopeService userDat
  • 如何在 Networkx / Graphviz 中绘制平行边

    我尝试使用 NetworkX 在两个节点之间添加平行边 但失败并出现以下错误 我究竟做错了什么 import networkx as nx import graphviz g1 nx MultiGraph node1 a node2 b g
  • 如何从 RxJS 地图运算符(角度)引发错误

    我想从我的可观察对象中抛出一个错误map基于条件的运算符 例如 如果未收到正确的 API 数据 请看下面的代码 private userAuthenticate email string password string return thi
  • 对数据框中的随机行进行采样

    我正在努力寻找合适的函数来返回从 R 语言的数据框中随机选取的指定行数而不进行替换 谁能帮我吗 Answer recommended by R Language collectives r language Collective 首先做一些
  • Farmville 等在线游戏使用什么数据库? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • java.lang.NoSuchMethodError:com.google.common.base.Preconditions.checkState(ZLjava/lang/String;) 与 Selenium、gradle 和 ChromeDrive

    我正在尝试将 Selenium api 与 Gradle 一起使用 这是我的 build gradle 依赖部分 dependencies compile com google api client google api client 1
  • TortoiseSVN 樱桃采摘

    我即将将主干中的某些修订合并到发布分支中 我用 mergeinfo 检查了有多少修订符合合并条件 结果是 42 尽管检查每个修订日志并决定是否应该合并它绝对是可能的并且不太难 然后我会使用 TortoiseSVN 检查日志并使用命令行svn
  • 将VB的Val转换为Java?

    如何使用Java编程语言实现VB的Val 函数或者是否有具有相同方法的API 你应该使用Integer parseInt http java sun com javase 6 docs api java lang Integer html
  • 如何为命令的所有选项启用无密码 sudo?

    我想启用无密码 sudosudo apt update 并且还可以使用无密码 sudo 工作apt update当我使用以下选项运行它时命令sudo apt update q and sudo apt update qq 我有文件 etc
  • windows下一个软件至少有多少堆

    我发现 C 运行时有自己的堆 以及 windows HeapWalk 下的所有堆 API 就我之前的知识而言 我有点麻烦 因为看起来一个进程实际上有几个堆 而不仅仅是一个堆 这样对吗 如果是这样的话 为什么需要几个堆呢 一个Windows进
  • ClassNotFoundException:使用 kafka 主题时出现 org.apache.flink.streaming.api.checkpoint.CheckpointNotifier

    我正在使用最新的 Flink 1 1 2 Hadoop 27 和 flink connector kafka 0 10 2 hadoop1 jar Flink消费者如下 StreamExecutionEnvironment env Stre
  • 在 C 中检查全零缓冲区的更快方法?

    我正在寻找一种更快的方法来完成此任务 int is empty char buf int size int i for i 0 i lt size i if buf i 0 return 0 return 1 我意识到我正在寻找一种不必要的
  • glTexImage2D 的 android 位图像素格式

    我正在尝试使用 Bitmap 类从 Java 加载纹理以与 NDK OpenGL 一起使用 它有效 但我在像素格式方面遇到问题 首先 在 Java 中 我从资产文件夹中加载位图 如下所示 Bitmap bitmap BitmapFactor
  • iOS 打印 UI - 限制份数

    是否可以限制允许用户打印的份数 来自代码 一句话 不 这不会在公共 API 中公开 如果您想在未来版本的 iOS API 中看到此功能 您应该在 bugreport apple com 上提交功能请求
  • 替代 if、else if

    我有很多 if else if 语句 我知道必须有更好的方法来做到这一点 但即使在搜索 stackoverflow 之后 我也不确定在我的特定情况下如何做到这一点 我正在解析文本文件 账单 并根据账单上是否出现某些字符串将服务提供商的名称分
  • 为 Pong 游戏创建 AI + 对速度算法的基本了解

    我正在为我的软件开发课程制作一个乒乓球游戏 我可能应该说这是家庭作业 因此我的理解有限 我在为 NPC 桨创建 AI 时遇到一些问题 我正在使用 Kivy 和 Python 目前我可以创建不可能被击败人工智能通过这样做 ai self pl
  • CSS 主体背景图像即使在放大/缩小时也固定为全屏

    我正在尝试用 CSS 来实现这样的目标 我想将身体背景图像固定在全屏上 这是通过以下代码完成的 body background url img beach jpg no repeat fixed 100 100 现在我可以验证窗口确实充满了
  • 蒙面文本框钱

    在 C 中 我使用这个mask 999 999 00 但我需要将数字显示为 123 123 12 如果我想输入 99 00 我需要执行 000099 00 我不想这样做 如果我使用这个 99 00 我无法给出 100 00 美元的数字 我怎
  • 在 ng-repeat 之后运行的指令

    我也有类似的问题ng repeat 完成后调用函数 https stackoverflow com questions 15207788 calling a function when ng repeat has finished但我里面有