问题标签 [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 投票
0 回答
330 浏览

javascript - AngularJS:ng-if 和 ng-repeat 在内循环的另一个范围内

我有以下片段:

它写出几行表格。

如果另一个范围(对象的数组)中的值将具有相同的给定属性名称并根据 attr 设置 ng-checked 参数(true 或 false),我想显示选中的复选框。来自第二个数组的值。

这意味着在 ng-repeat 中使用内部循环,例如:

我怎么能在AngularJS中做到这一点?

非常感谢您的任何建议。

0 投票
1 回答
97 浏览

javascript - 在 ng-repeat 循环中显示条件内容的最佳方式是什么

我经常使用它,我觉得我做错了。

在 ng-repeat 中,我想显示一些部分,如果条件正确但我不希望它处于循环中,我需要在我想要的时候和我想要的地方显示它。

例如: $scope.selectedItemId 是从 javascript 动态定义和更改的。

在示例中,它可能是一个休息结果或一个指令,而不是 item.condition。

看起来它检查循环中的每个项目。我想动态地将内容放在那里。当用户单击设置所选项目的按钮时,我希望它在 ng-if 现在的位置显示它的内容。

0 投票
2 回答
226 浏览

javascript - ng-if的交换速度

我正在尝试使控件根据附近的复选框显示不同的值。我正在使用的代码与此非常相似:

当复选框被切换时,两个输入字段会在短时间内同时可见,从而导致不良的布局效果。它最终确实显示正确,但我希望消除滞后并让它们顺利交换。(我假设这是一个 JS 性能问题,与页面上有更多属性有关,或者页面上其他地方还有更多其他内容。)

有没有办法可以重写它以提高性能以获得预期的效果?是否可以只交换绑定而不是整个控件?或者谁能​​想到其他可能导致延迟的事情?

0 投票
2 回答
368 浏览

angularjs - 如何在使用 orderBy 过滤器的 ng-repeat 的更新范围内正确使用 ng-if

我有一个聊天消息显示,顶部显示最旧的消息,底部显示最新的消息。我在数组ng-repeat上使用一个$scope.messages,新的聊天消息会动态添加到该数组中。有ng-repeat一个orderBy过滤器组件来帮助按创建日期对消息进行排序。

ng-if当同一用户在同一天发送消息时,我试图用来隐藏 HTML 的某些方面(用户的头像、姓名、msg 时间戳等)。但是,当向数组添加新消息时,我的逻辑就搞砸了。$scope.messages

HTML 的缩短版本:

这是适用的聊天控制器:

乍一看,此代码有效。最初,由于orderBy过滤器,位于最后一个索引处的$scope.messages消息实际上是第一条消息,而位于0索引处的消息是最后添加的消息。

但是,每当添加新消息时,Angular 都会动态更新范围,并且在orderBy应用过滤器之前的一瞬间,该新消息位于$scope.messages. 这抛弃了我的ng-if方法背后的逻辑,因此来自同一用户的每条新消息都显示了我想要隐藏的 HTML 元素(即它在方法上返回trueng-if)。

根据console.logging我的广泛介绍,在为 编译 HTML 时,索引为0ng-if的消息仍然是发送的最后一条消息(不是最新消息)的第二个消息,而最新、最新的消息实际上是数组的最后一个索引。这会导致第一条语句生效,并为同一用户在同一天发送的每条新消息显示 HTML 元素(除非我刷新页面,其中所有内容都正确显示)。if

任何人都可以想到的解决方法?

0 投票
2 回答
3128 浏览

angularjs - 有条件地在 Angular App 中包含侧边栏和标题

在某些视图上,我想要一个侧边栏和标题,而有些则不需要。使用 AngularJS,实现这一目标的最佳方法是什么。

我目前考虑的解决方案是在侧边栏和标题 DIV 上使用 ng-if,并在我的控制器中,根据我希望侧边栏和标题出现的视图将 $scope 变量设置为 true 或 false。

一个具体的例子是 Youtube.com。在 Youtube 的主页上,请注意有一个侧边栏和一个带有过滤器的子标题:“看什么”和“音乐”。但是,在任何视频页面上,侧边栏和子标题都不存在。我想在 AngularJS 中实现这一点。

索引.html

讨论板.html

控制器.js

0 投票
3 回答
11846 浏览

angularjs - 如何使用带有输入文本框的 ng-if 和 ng-model?

我正在使用 angularjs。

在我的 html 中,我有 2 个输入框

所以在这里我想根据某些条件一次只显示一个输入框。但我猜 ng-if 不起作用。基本上如果edit == true我想显示singleAppDetails.name并且如果edit == false那么name

0 投票
2 回答
3204 浏览

angularjs - Angularjs ng-if 不与 ng-model 一起使用

我正在使用 angularjs 来集成我的 api。

我在使用ng-if内部文本框时遇到问题。

所以下面是我的 HTML 代码片段:

这里编辑变量在我的控制器中的范围内,我已经这样声明了它:

因此,如果编辑为假,它应该被绑定,ng-model="name" 如果编辑为真,它应该被绑定,ng-model="singleAppDetails.name" 但它没有按预期绑定它。

此外,我正在使用$http.post将数据发布到服务器,如下所示:

但这总是发送空数据。

0 投票
4 回答
15158 浏览

javascript - angularjs 中的 ng-else 指令

我们如何创建ngELSE与指令相同的ngIF指令?

下面的代码ngIfDirective。我们要自定义代码ngELSE吗?

0 投票
1 回答
1410 浏览

angularjs - 在两条不同的路线之间使用 ng-if 和 ng-include 进行 ng-animate

我正在尝试在两页之间制作过渡动画。

在控制器上设置变量FirstCtrlSecondCtrl进行ng-if控制。

问题是动画在第一次运行良好,但在下一次它不起作用。我错过了什么?

路线:

第一个控制器:

第二个控制器:

索引.html

布局.html

CSS(SASS):


重要的:

这是一些调试,以证明动画完全可以直接从视图中操作变量:

0 投票
2 回答
3059 浏览

javascript - 将AngularJS ng-form对象传递给ng-if?

当我在此处单击“预览”时,预览模式下的保存按钮未禁用http://plnkr.co/edit/I3n29LHP2Yotiw8vkW0i

我认为这是因为表单对象(testAddForm)在 ng-if 的范围内不可用。我知道我应该在我的控制器中使用一个对象,因为它一直被传递下去,但是表单对象是由 angular 创建的,并且在 ng-if 中不可用。我该如何解决这个问题?

JS: