如何使用 angular.js 在 DOM 中移动视图?

2024-03-13

如何使用 Angular JS 将元素移动到 DOM 中的不同位置?

我有一个像这样的元素列表

<ul id="list" ng-controller="ListController">
    <li ng-controller="ItemController"><div>content</div></li>
    <li ng-controller="ItemController"><div>content</div></li>
    <li ng-controller="ItemController"><div>content</div></li>
    <li ng-controller="ItemController">
        <div>content</div>
        <div id="overlay"></div>
    </li>
</ul>

我想要完成的是将 #overlay 在列表中从一个位置移动到另一个位置,而不必在我标记为隐藏/未隐藏的每个项目中都有隐藏的重复项。

如果这是 jquery 我可以这样做:

$("#overlay").appendTo("#list li:first-child");

有没有等效的方法可以用角度来做到这一点?


感谢您的澄清,我了解到您已经获得了一份项目清单。您希望能够选择此列表中的一项(滑动,但也可能发生其他事件),然后显示所选项目的附加 DOM 元素 (div)。如果选择了其他项目,则应取消选择它 - 这样只有一个项目应显示额外的 div。

如果上述理解是正确的,那么您可以使用简单的 ng-repeat 和 ng-show 指令来解决这个问题,如下所示:

<ul ng-controller="ListController">
    <li ng-repeat="item in items">
        <div ng-click="open(item)">{{item.content}}</div>
        <div ng-show="isOpen(item)">overlay: tweet, share, pin</div>
    </li>
</ul>

控制器中的代码位置(仅显示其中的一部分):

$scope.open = function(item){
    if ($scope.isOpen(item)){
        $scope.opened = undefined;
    } else {
        $scope.opened = item;
    }        
};

$scope.isOpen = function(item){
    return $scope.opened === item;
};

这是完整的 jsFiddle:http://jsfiddle.net/pkozlowski_opensource/65Cxv/7/ http://jsfiddle.net/pkozlowski_opensource/65Cxv/7/

如果您担心 DOM 元素过多,您可以使用 ng-switch 指令实现相同的效果:

<ul ng-controller="ListController">
    <li ng-repeat="item in items">
        <div ng-click="open(item)">{{item.content}}</div>
        <ng-switch on="isOpen(item)">
            <div ng-switch-when="true">overlay: tweet, share, pin</div>
        </ng-switch>        
    </li>
</ul>

这是 jsFiddle:http://jsfiddle.net/pkozlowski_opensource/bBtH3/2/ http://jsfiddle.net/pkozlowski_opensource/bBtH3/2/

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

如何使用 angular.js 在 DOM 中移动视图? 的相关文章

  • 无法实现模块模式

    我正在尝试重现 Douglas Crockford 所著的 Javascript The Good Parts 一书中的一些代码 这个想法是使用闭包进行对象封装并避免Javascript固有的全局变量 var serial maker fu
  • Angular JS - 提交到 $http 时日期发生变化 - 时区问题

    我遇到一个奇怪的问题Date当它通过 http put 传递到 API 时发生变化 我怀疑时区问题 Datepicker 触发 ng change 事件 console log Tue Jun 10 2014 00 00 00 GMT 01
  • contenteditable,在文本末尾设置插入符号(跨浏览器)

    输出在Chrome div style border 1px solid 000 width 500px height 40px hey div what s up div div div div
  • Android 上的 Chrome 强制隐藏地址栏

    我最近开发了一个获取混合 http https 内容的网站 因此 我总是将地址栏显示在顶部 它不会像其他网站那样自动隐藏 这就是我要说的 This https planetkde org 是网站的链接 内容是从各种来源获取的 因此无法过滤非
  • Ng Bootstrap 日期范围选择器 [markDisabled] 不适用于输入

    我正在尝试禁用某些日期ng 引导范围选择器 https ng bootstrap github io components datepicker overview 目前 我在弹出窗口中有一个范围选择器 并且我正在使用 markDisable
  • Javascript:打乱数组中的对象组

    我有一个对象数组 我已按键排序 group如下 使得所有具有相同值的对象group在索引中彼此相邻data 例如 var data foo cat group house foo cat group house foo cat group
  • JSLint 错误:意外的“这个”

    无法理解为什么 JSLint 对我的使用感到惊讶this在下面的代码中 function testConstr x use strict this joker Whyyy sooo seriousss this x x 对于这两个属性分配
  • 使用点符号将数字传递到函数中

    如果我有一个对象和函数 var obj 1234 example sample 5678 example sample function example num str if obj num hasOwnProperty str manip
  • 将 DIV 转换为单击并拖动视口

    有人知道一种不显眼的 基于原型或无框架的方法将具有大内容 例如地图 的 DIV 转换为具有固定尺寸的可点击和可拖动的 地图 容器 非常像 Google 地图 我想在大型输入表单中显示 HTML 块 这些块可能会超出可用空间 每个块可以有大约
  • 启动 onclick 比使用 document.onload 更快

    我有带有链接的 html 页面 我想在其中附加一个功能onclick事件 一种方法当然是 a href save php Save a 但我知道这不是最佳做法 所以我反而等待window onload 循环遍历链接并将保存功能附加到链接re
  • 无法安装js-bson

    我正在使用Windows 7 64位 尝试安装bson作为mongodb的依赖项 我收到此错误 npm WARN package json email protected cdn cgi l email protection No READ
  • JavaScript:嵌套循环?

    我想实现这样的动画 序列 动画以循环开始 想象一下car从 x1 移动到 x2 然后暂停 1 秒 然后再次播放动画 想象一下car从 x2 移动到 x3 等 the car循环是通过向汽车左侧添加 1px 来实现的 值 但我无法弄清楚嵌套循
  • 如何使表格单元格的最小宽度为 3 位数字?

    如何使表格中的每个单元格的最小宽度为 3 位数字且不会更大 现在我正在硬编码min width 但我不喜欢硬编码一个值 因为我将来可能想更改字体 如果需要Javascript也没关系 table border 1 tr td 1 td td
  • 如何制作实时jquery效果?

    我想制作一个实时提要阅读器 并且我想要一个解决方案 使新项目无需刷新页面即可出现 并且具有像friendfeed一样的滚动效果 你可以在这里看到我在说什么 http www vimeo com 4029954 http www vimeo
  • 响应覆盖 div 下的链接

    场景是这样的 我已经构建了一个顶部导航原型 它需要在其顶部有一个覆盖 透明 PNG 图像 目前它覆盖了大约 1 3 的链接 请看下面 有什么方法可以让前 1 3 的链接做出响应 即使有一个 div div 部分覆盖它们 覆盖层不会包含任何可
  • 为什么 [].push([]) 返回 1? [复制]

    这个问题在这里已经有答案了 为什么这会返回 1 push outputs 1 push 返回数组的新长度 one push two returns 2 array length is 2 one two push something ret
  • 在javascript中我们如何识别一个对象是Hash还是Array?

    我的 JSON 调用的输出可以是数组或哈希 我如何区分这两者 现代浏览器支持Array isArray obj method See MDN https developer mozilla org en US docs Web JavaSc
  • 将响应式网格布局转换为 Plotly Dash

    我是一个非常活跃的 Dash 用户 我开始发现 Dash 使用中存在很多限制 并且我意识到有关如何将组件转换为 Dash 的信息 内容绝对有限 并且示例过时且非常简单 并且我对 Javascript 或 React 几乎没有任何了解 我完全
  • ESLint 如何集成到 Create React App 中?

    当我跑步时npx create react app some name 为我创建了一个简单的 React 项目 当我随后窥视package json 似乎有一些 ESLint 存在的证据 因为有 eslintConfig extends r
  • IE 中带有“删除”方法的 jQuery.ajax 问题

    我有一个页面 用户可以使用按钮编辑各种内容并选择触发 ajax 调用 特别是 一个操作会导致远程调用一个 url 其中包含一些数据和 放置 请求 这 因为我使用的是宁静的 Rails 后端 会触发我的更新操作 我还有一个删除按钮 它调用相同

随机推荐

  • 动态尿路感染稳定吗?

    我的文件格式没有声明的 UTI 因此 Launch Services 已为其分配了动态 UTI dyn ah62d4rv4ge81g23wsmw1a5dbte 我无法控制这些文档的 UTI 我也想为该格式开发一个快速查看生成器 并且快速查看
  • SAML 2.0:如何配置断言消费者服务 URL

    我正在实现一个 SAML 2 0 服务提供商 它使用 Okta 作为身份提供商 我想配置断言消费者服务 ACS URL 以便我的服务提供商应用程序中的 SAML 2 0 反映回断言中 但是 我注意到 Okta 身份提供程序改为发送在 Okt
  • Tensorflow unsorted_segment_sum 维度

    我正在使用tf unsorted segment sumTensorFlow 的方法 当我作为数据给出的张量只有一行时 它工作得很好 例如 tf unsorted segment sum tf constant 0 2 0 1 0 5 0
  • Bootstrap 3 导航栏折叠

    有什么方法可以增加 Bootstrap 3 导航栏折叠的点 即 使其在纵向平板电脑上折叠成下拉菜单 这两个适用于 bootstrap 2 但现在不行了 如何使用 Twitter bootstrap responsive 更改导航栏折叠阈值
  • Maven:带有 Groovy 2.3.5 的 Groovy-Eclipse 编译器插件

    Since GMaven http gmaven codehaus org 已经停产了 我一直在用Groovy Eclipse 编译器插件 http groovy codehaus org Groovy Eclipse compiler p
  • 程序员对Vista Windows任务管理器中内存的理解

    我对 XP 中的 Windows 任务管理器有一定的了解 但我想在 Vista 中更好地了解它 工作集 内存 和 内存 私有工作集 有什么区别 什么是Paged Pool 什么是NP Pool Non Paged 如何使用这些来确定内存使用
  • 比质心更好的“中心点”

    我正在使用多边形的质心在地图应用程序中附加标记 这对于凸多边形来说绝对有效 对于许多凹多边形来说也非常好 但是 某些多边形 香蕉 甜甜圈 显然不会产生所需的结果 在这些情况下 质心位于outside多边形区域 有谁知道更好的方法来找到合适的
  • List 的 Last() 扩展方法的性能如何?

    我很喜欢Last 并会一直使用它List
  • Rstudio 速度慢得令人痛苦

    突然间 Rstudio 慢得令人痛苦 现在无法使用 这意味着 我打开它 如果我输入任何内容 就会有几秒钟的延迟 我已经探索了我能想到的所有选项 1 重新安装 R 和 Rstudio 尽管我不能 100 确定我可以删除所有组件 2 尝试重置设
  • if 语句不起作用?

    我用调试器看了又看 似乎无法弄清楚为什么 IF 语句总是打印消息 IF 语句检查是否 yesno Y or N 但无论我输入 y 或 Y 或 n N 或 H B 它都会显示 我不知道该采取什么行动了 我似乎找不到哪里出了问题 if yesn
  • Neo4j cypher - 导入 CSV 并根据 csv 值添加节点之间的关系

    是否可以在 cypher 中使用导入功能根据 csv 的值在节点之间创建不同的关系 例如 对于给定的 csv 数据 product id user id action 1 1 VIEW 1 2 PURCHASE 我需要创建产品节点 prod
  • 在 MySQL 中插入/更新随机日期

    如何使用 MySQL 更新过去 2 周内随机日期的列 例如 代码实际上不起作用 UPDATE mytable SET col sysdate rand 1 14 您可以使用以下表达式获得一个随机整数 获取随机整数R 范围 i FLOOR i
  • 检查 Oracle 数据库有多少年了?

    因此 我们有一个生产数据库的经过处理的版本的镜像 无论如何 您知道 是否可以查明数据库的年龄 即当数据库放置在 Oracle 服务器上时 谢谢你的帮助 选择从 dba users 创建 其中用户名 SYS 在我的网站上有 16 秒的差异 从
  • 如何在Spark 1.6集群上运行用Spark 2.1组装的Spark应用程序?

    有人告诉我 我可以使用 Spark 的一个版本构建 Spark 应用程序 只要我使用sbt assembly为了构建它 我可以在任何 Spark 集群上使用 Spark Submit 运行它 因此 我使用 Spark 2 1 1 构建了简单
  • 为什么 Base64.decode 为不同的字符串生成相同的字节数组?

    我使用 URL 安全 Base64 编码来对随机生成的字节数组进行编码 但我在解码时遇到问题 当我解码两个不同的字符串 除了最后一个字符之外的所有字符都是相同的 时 它会生成相同的字节数组 例如 对于两者 dGVzdCBzdHJpbmr a
  • C# 3.0 自动属性 ​​- 是否可以添加自定义行为?

    我想知道是否有任何方法可以将自定义行为添加到自动属性获取 设置方法中 我能想到的一个明显的例子是希望每个设置属性方法都可以调用任何PropertyChanged事件处理程序作为System ComponentModel INotifyPro
  • 用户在 Python 中输入后出现“NameError:name ''未定义”[重复]

    这个问题在这里已经有答案了 我完全不明白为什么这不起作用 应该可以精确地工作 对吗 UserName input Please enter your name print Hello Mr UserName raw input
  • 设置限制的 PayloadTooLargeError

    您好 我在 Express js 方面遇到问题 我需要将 base64 文件发送到 node js 我的 configuraizone 如下所示 但是当我发送文件时 出现此错误 PayloadTooLargeError 请求实体太大 我读过
  • 现有命名空间类型的使用声明与创建类型别名

    这不是关于两者之间差异的问题using and typedef用于创建类型别名 我想提供从代码块或函数内的命名空间对现有类型的访问 我发现了两种不同的方法 我可以使用 using 声明 包含 该类型 using typename mynam
  • 如何使用 angular.js 在 DOM 中移动视图?

    如何使用 Angular JS 将元素移动到 DOM 中的不同位置 我有一个像这样的元素列表 ul li div content div li li div content div li li div content div li li d