问题标签 [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.

0 投票
1 回答
2079 浏览

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。

0 投票
1 回答
887 浏览

javascript - ng-switch-when:是否每次都重新创建新控制器并在选择不同步骤时删除以前的数据?

我有一个基于 angular.js 的单页 webapp 似乎我有性能问题。所以我有主控制器和它的视图,看起来像这样

对于每个步骤,我都有自己的控制器,在我们的例子中是step1-ctland step2-ctl

所以我的问题是:当我选择第 2 步时,角度是否会解除第 1 步中的所有元素的绑定,删除手表并清理资源?第二个问题 - 当我在步骤之间切换时,角度是否每次都会创建新的控制器实例、添加回调、绑定等?

0 投票
1 回答
6917 浏览

angularjs - 角。ng-switch 在表格内不起作用

无论如何我可以让 ng-switch 在桌子内工作吗?表格示例不工作,但 ul 示例工作正常。问题是我真的需要表格示例。我正在使用角度 1.07。

0 投票
1 回答
941 浏览

angularjs - 移除包含角度指令的元素时清除间隔

我构建了一个简单的指令,添加了一个基于 javascript 的加载动画。它正在window.setInterval()循环运行。这很好用,但是当加载完成时,我使用ngSwitch交换我的内容,这会从页面中删除包含加载指令属性的元素。

理想情况下,我想注意这种变化并清除我的间隔,这样动画计算就不会在后台运行。我尝试观看一个自定义函数来评估页面上元素的存在。我知道该函数可以检测到这一点,但似乎时间是一个问题——据我所知,$watch当指令属性的元素离开页面时,它本身就被清除了。因此,我$watch的 'ed 表达式永远不会检测到更改,也永远不会调用清除动画间隔函数的回调。

是否有处理这种情况的推荐模式?

我的模板中的相关片段:

我的指令的简化版本:

0 投票
2 回答
2392 浏览

javascript - 是否可以将 ng-switch-when 属性放在多个元素上?

我试图ng-switch在设置某个索引时使用显示特定元素来切换元素。

ng-switch正在工作,除了它只显示最后一个 switch 语句。

使用此代码时,我只显示“第 2 帧”div:

switch-whenframe设置为 2时,我希望上面显示所有内容。

注意:标记不能更改。

  • 我怎样才能做到这一点?
  • 如果我不能有更好/不同的选择吗?
0 投票
1 回答
1001 浏览

angularjs - AngularJs (ng-repeat tr) + (ng-repeat td) + (ng-switch td) +(ng-repeat x)

此信息是从一个 json 对象中解析出来的,其中一个“部分”是另一个对象,我需要遍历它,但将它们显示为另一个“td”。

显然,如果可能的话,一种方法是提供某种动态标签('INEEDSOMETAG')

json如下:

添加了一个jsfiddle:http: //jsfiddle.net/kDF5L/1/

0 投票
2 回答
849 浏览

angularjs - angularjs:gettext 在 ngSwitch 中不起作用

我正在尝试将 gettext 与 ngSwithc 结合使用,如下所示:

是一个演示该问题的jsfiddle。我得到的错误是

有什么建议我可以将 gettext 与 ngSwitch 结合使用吗?

0 投票
1 回答
798 浏览

angularjs - Angular ng-switch 多种情况的通用代码?

我可以为 Angular ng-switch 指令复制这个 switch 语句行为吗?

在角度我尝试使用多个 ng-switch-when 但它没有帮助。

我经常遇到多个案例选项共享相同实现的场景,我必须为所有这些案例编写冗余代码。

您觉得我应该遵循更好的做法,然后请分享。

  • 我考虑使用 ng-if 作为一种选择。
  • 我还尝试将案例值('sample1','sample2')转换为一个常见值(比如'sample_12_common',因此在代码段中编写一个匹配案例。

非常感谢。

0 投票
3 回答
13111 浏览

javascript - 在 Angular 的 ng-switch 中使用 html 模板

我正在制作一个随着用户点击而移动的“交互式菜单”。我想知道是否有办法在 ng-switch 中包含 html 模板,因为每个“开关”中的所有逻辑都是不同的——这将导致巨大的 html 文件。

0 投票
1 回答
4236 浏览

javascript - AngularJs。使用 ng repeat 和 ng switch 渲染表

我正在尝试使用angularjs指令渲染具有两列的表。

应该有 2 列 - 第一个应该是 twitter 消息,第二个应该是 facebook 帖子。但在我的情况下,相同的消息在两列中呈现(就像这个http://puu.sh/5oHT7.png)。我做错了什么?