问题标签 [angular-ng-if]

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 回答
239 浏览

javascript - AngularJS 多个 ng-if 不会同时更新。为什么?怎么修?

我有两个按钮来链接和取消链接社交登录提供商。

现在,每当我点击取消链接 Facebook时,我都会向服务器发送一个 POST 请求,然后在取消链接(或链接)帐户后立即发出单独的 HTTP 请求以获取最新的用户信息。

我不明白的问题是为什么在Unlink Facebook消失之前几乎有整整一秒的延迟。

我有两个按钮。它们不能同时处于活动状态,因为它们具有完全相反的条件。例如,如果我已经链接了一个帐户,当我尝试取消链接时,一旦收到数据,就会出现一个新按钮Link Facebook(应该如此),但在Unlink Facebook按钮消失之前几乎需要一秒钟。

我几乎可以肯定这与 AngularJS 生命周期管理有关。这可以解决吗?

更新:这个问题原来是.btnclass:上的这个 CSS 属性transition: background-color 0.25s ease-out;

0 投票
1 回答
2632 浏览

angularjs - Ng-if 导致 Angular js 中的内存泄漏

Ng-if 导致 Angular js 中的内存泄漏!图片:https ://www.mediafire.com/?ojoc55ccnyqlxyb

我的应用有两个页面

第一页是主页,显示搜索输入

第二页是释放内存的空页。

我是如何检测到泄漏的?
从链接运行我的应用程序:http
://www.mediafire.com/download/y5f6f326f3zo0ch/LeakProject_-_Copy.7z在匿名模式下使用 chrome,F12 -> 配置文件 -> 记录堆分配。在点击空白页面后点击主页并重复更多时间,结果没有任何泄漏。

但是,如果您键入任何要搜索的内容,然后您将转到 emptypage 以释放内存。你会得到泄漏。

我发现,当转到空白页面时,主页中 ovNgListBox 的范围会破坏。我认为 scope.textSearch 的值将更改为 undefined 并且 angualr.js 的 ng-if 中的 $scope.$watch 将执行以破坏范围。但反之亦然:虽然 html 的范围

被摧毁。

但范围

没有被破坏。为什么为什么?

即使您将 scope.showFilter 的值更改为 false ,那么 $scope.$watch 的 in-if 也不会被调用。

片段代码:

0 投票
1 回答
3973 浏览

angularjs - AngularJS - ng-if - 显示主体何时有一个类

我想显示/隐藏一个元素ng-if

例如,如果 body 有特定的类,我想显示一个元素

我尝试了以下方法,但没有成功 - 这甚至是有效的表达方式吗?

<div ng-if="document.querySelector('body').className.indexOf('bodyHasThisClass') >= 0"></div

任何建议都非常感谢。这是一个简单的例子:http ://plnkr.co/edit/kzXXg0sne8nyQZuufao7?p=preview


来自 AngularJS 文档:https ://docs.angularjs.org/guide/expression

Angular 表达式无法访问诸如 window、document 或 location 之类的全局变量。这种限制是故意的。它可以防止意外访问全局状态——这是微妙错误的常见来源。

0 投票
1 回答
1372 浏览

angularjs - 由于 ng-if,angularjs 指令的 '$element' 是注释

我正在尝试为我的 angularjs 应用程序构建一个弹出(对话框)指令。(还有很多待办事项......)但是我制作了一个模板文件,它构建了弹出元素,并插入了与指令元素一起传递的属性中的值。

问题是,我在该模板中有一些 ng-ifs 用于检查范围内属性的不同值,然后 angular 插入注释,例如

前后相关元素。所以我在控制器的 $element 参数中得到注释而不是实际元素!

为什么没有角度跳过那里的评论?我怎么能克服呢?

我的模板代码(popup_template.html):

现在我的角度代码:

我会非常感谢任何评论。

0 投票
6 回答
159232 浏览

angularjs - Angular ng-如果不是真的

为什么这不起作用。

<li ng-if="!area"></li>

感觉有点不合逻辑

<li ng-if="area"></li>

工作得很好。

'area' 在范围内被定义为 true/false 对此有什么解决方法吗?我宁愿不使用 ng-show/ng-hide,因为它们都在 DOM 中呈现项目。

0 投票
3 回答
253 浏览

angularjs - 角度显示 NG-重复显示

我有以下代码在页面上显示 3 种不同类型:

  1. 生产
  2. 发展
  3. 维护

如果过滤结果中没有内容,我希望整个部分(生产 h4 和表/tbody)消失。(只有有内容才会出现)

我目前正在尝试 ng-if 获取表格内的内容,检查是否发生 ng-repeat 并仅渲染 ng-repeat 中是否有内容,但我希望整个部分(包括表格)在没有内容时消失。有谁知道如何做到这一点?

0 投票
2 回答
608 浏览

angularjs - 检查数组的大小

我有一个总是返回 20 个项目的数组。但是,如果返回的项目少于 20 个,则返回一个 " " 而不是减少数组中的数量。

例如,myArray有 20 个项目(只有 15 个值)。

我想根据 myArray 中的项目中填充的数量对某些元素执行 ng-show/hide/if。

最初我尝试过:

当然,以上所有内容都会显示,因为总是有 20 件物品被退回。

我可以通过 ng-show/hide/if 来实现这一点,而不必在我的控制器中编写额外的 JS 吗?

0 投票
2 回答
49026 浏览

angularjs - AngularJs ng-if 比较日期

我希望比较 ng 中的两个日期——如果这是我的玉文件的样子。

如果第一段的开始日期在今天之后,这段代码有望在我的 ui 中添加一个 li。

有没有办法使这项工作?

0 投票
2 回答
223 浏览

angularjs - AngularJS - 在 ng-class 上使用多个 Coniditons

我有一个使用 ng-repeat。也有一个正在工作的 ng-class true/false 条件。我可以在我的真/假陈述中添加另一个条件吗?

本质上,我想检查是否:

因此,如果以上两个都为真,则应用 CSS 类绿色...如果为假,应用红色。


解决方案:

我不得不混合使用提供的 2 条建议。本质上,带有过滤器的条件需要被包裹在 () 中,所以:

0 投票
3 回答
3191 浏览

javascript - 对非数组对象进行 ng-repeat

我知道 ng-repeat 仅适用于数组。

我的问题是当我不知道我从服务器获得的对象是数组还是唯一对象时。
我需要动态确定它是数组还是对象,并且只有当它是数组时才使用 ng-repeat。

我的问题是使用带有条件的 ng-repeat 实现的最佳方法是什么 - 仅当对象是数组时?

我试图以这种方式解决问题:

但它不起作用。