问题标签 [ng-switch]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - AngularJS 指令:使用 ng-switch 中断嵌入
我创建了一个用于在树结构中显示大量数据的指令。当一个元素被折叠时,它的内容会使用 ng-show 命令隐藏。
这是plunker的一个高度简化的版本。
该指令称为可折叠测试,并按如下方式使用:
控制折叠的指令模板部分如下所示:
这一切都很好,但是我需要使用 ng-repeat 将它用于数百个嵌套元素。这会导致页面加载需要 10-15 秒,然后在展开和折叠元素时也会有很大的延迟。
我试图通过用 ng-switch 替换 ng-show 指令来缓解这种情况。(我将在以后更新 angular 时使用 ng-if。)这种方法不起作用,因为对尚不存在的 DOM 元素使用 transclude 服务会产生错误。
我以为每次更改“折叠”状态时可能都必须重新编译,但我不明白如何使它工作。
或者,也许有更好的方法来解决我还没有想到的问题。
编辑:
OverZealous完美地回答了我的问题,谢谢!对于那些尝试做类似事情的人来说,这只是一个更新。此方法仅适用于 ng-repeat 循环之外。似乎 ng-if 在测试失败时会将 DOM 代码转换为注释。因此, ng-repeat 只会重复评论(或类似的东西)。所以 ng-if 和 ng-switch 仍然不是万无一失的,但是它们很好,你不需要 ng-repeat。
javascript - ng-switch-when:是否每次都重新创建新控制器并在选择不同步骤时删除以前的数据?
我有一个基于 angular.js 的单页 webapp 似乎我有性能问题。所以我有主控制器和它的视图,看起来像这样
对于每个步骤,我都有自己的控制器,在我们的例子中是step1-ctl
and step2-ctl
。
所以我的问题是:当我选择第 2 步时,角度是否会解除第 1 步中的所有元素的绑定,删除手表并清理资源?第二个问题 - 当我在步骤之间切换时,角度是否每次都会创建新的控制器实例、添加回调、绑定等?
angularjs - 角。ng-switch 在表格内不起作用
无论如何我可以让 ng-switch 在桌子内工作吗?表格示例不工作,但 ul 示例工作正常。问题是我真的需要表格示例。我正在使用角度 1.07。
angularjs - 移除包含角度指令的元素时清除间隔
我构建了一个简单的指令,添加了一个基于 javascript 的加载动画。它正在window.setInterval()
循环运行。这很好用,但是当加载完成时,我使用ngSwitch
交换我的内容,这会从页面中删除包含加载指令属性的元素。
理想情况下,我想注意这种变化并清除我的间隔,这样动画计算就不会在后台运行。我尝试观看一个自定义函数来评估页面上元素的存在。我知道该函数可以检测到这一点,但似乎时间是一个问题——据我所知,$watch
当指令属性的元素离开页面时,它本身就被清除了。因此,我$watch
的 'ed 表达式永远不会检测到更改,也永远不会调用清除动画间隔函数的回调。
是否有处理这种情况的推荐模式?
我的模板中的相关片段:
我的指令的简化版本:
javascript - 是否可以将 ng-switch-when 属性放在多个元素上?
我试图ng-switch
在设置某个索引时使用显示特定元素来切换元素。
ng-switch
正在工作,除了它只显示最后一个 switch 语句。
使用此代码时,我只显示“第 2 帧”div:
switch-when
当frame
设置为 2时,我希望上面显示所有内容。
注意:标记不能更改。
- 我怎样才能做到这一点?
- 如果我不能有更好/不同的选择吗?
angularjs - AngularJs (ng-repeat tr) + (ng-repeat td) + (ng-switch td) +(ng-repeat x)
此信息是从一个 json 对象中解析出来的,其中一个“部分”是另一个对象,我需要遍历它,但将它们显示为另一个“td”。
显然,如果可能的话,一种方法是提供某种动态标签('INEEDSOMETAG')
json如下:
添加了一个jsfiddle:http: //jsfiddle.net/kDF5L/1/
angularjs - Angular ng-switch 多种情况的通用代码?
我可以为 Angular ng-switch 指令复制这个 switch 语句行为吗?
在角度我尝试使用多个 ng-switch-when 但它没有帮助。
我经常遇到多个案例选项共享相同实现的场景,我必须为所有这些案例编写冗余代码。
您觉得我应该遵循更好的做法,然后请分享。
- 我考虑使用 ng-if 作为一种选择。
- 我还尝试将案例值('sample1','sample2')转换为一个常见值(比如'sample_12_common',因此在代码段中编写一个匹配案例。
非常感谢。
javascript - 在 Angular 的 ng-switch 中使用 html 模板
我正在制作一个随着用户点击而移动的“交互式菜单”。我想知道是否有办法在 ng-switch 中包含 html 模板,因为每个“开关”中的所有逻辑都是不同的——这将导致巨大的 html 文件。
javascript - AngularJs。使用 ng repeat 和 ng switch 渲染表
我正在尝试使用angularjs
指令渲染具有两列的表。
应该有 2 列 - 第一个应该是 twitter 消息,第二个应该是 facebook 帖子。但在我的情况下,相同的消息在两列中呈现(就像这个http://puu.sh/5oHT7.png)。我做错了什么?