问题标签 [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.
javascript - AngularJS:ng-if 和 ng-repeat 在内循环的另一个范围内
我有以下片段:
它写出几行表格。
如果另一个范围(对象的数组)中的值将具有相同的给定属性名称并根据 attr 设置 ng-checked 参数(true 或 false),我想显示选中的复选框。来自第二个数组的值。
这意味着在 ng-repeat 中使用内部循环,例如:
我怎么能在AngularJS中做到这一点?
非常感谢您的任何建议。
javascript - 在 ng-repeat 循环中显示条件内容的最佳方式是什么
我经常使用它,我觉得我做错了。
在 ng-repeat 中,我想显示一些部分,如果条件正确但我不希望它处于循环中,我需要在我想要的时候和我想要的地方显示它。
例如: $scope.selectedItemId 是从 javascript 动态定义和更改的。
在示例中,它可能是一个休息结果或一个指令,而不是 item.condition。
看起来它检查循环中的每个项目。我想动态地将内容放在那里。当用户单击设置所选项目的按钮时,我希望它在 ng-if 现在的位置显示它的内容。
javascript - ng-if的交换速度
我正在尝试使控件根据附近的复选框显示不同的值。我正在使用的代码与此非常相似:
当复选框被切换时,两个输入字段会在短时间内同时可见,从而导致不良的布局效果。它最终确实显示正确,但我希望消除滞后并让它们顺利交换。(我假设这是一个 JS 性能问题,与页面上有更多属性有关,或者页面上其他地方还有更多其他内容。)
有没有办法可以重写它以提高性能以获得预期的效果?是否可以只交换绑定而不是整个控件?或者谁能想到其他可能导致延迟的事情?
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
任何人都可以想到的解决方法?
angularjs - 有条件地在 Angular App 中包含侧边栏和标题
在某些视图上,我想要一个侧边栏和标题,而有些则不需要。使用 AngularJS,实现这一目标的最佳方法是什么。
我目前考虑的解决方案是在侧边栏和标题 DIV 上使用 ng-if,并在我的控制器中,根据我希望侧边栏和标题出现的视图将 $scope 变量设置为 true 或 false。
一个具体的例子是 Youtube.com。在 Youtube 的主页上,请注意有一个侧边栏和一个带有过滤器的子标题:“看什么”和“音乐”。但是,在任何视频页面上,侧边栏和子标题都不存在。我想在 AngularJS 中实现这一点。
索引.html
讨论板.html
控制器.js
angularjs - 如何使用带有输入文本框的 ng-if 和 ng-model?
我正在使用 angularjs。
在我的 html 中,我有 2 个输入框
所以在这里我想根据某些条件一次只显示一个输入框。但我猜 ng-if 不起作用。基本上如果edit == true我想显示singleAppDetails.name并且如果edit == false那么name
angularjs - Angularjs ng-if 不与 ng-model 一起使用
我正在使用 angularjs 来集成我的 api。
我在使用ng-if
内部文本框时遇到问题。
所以下面是我的 HTML 代码片段:
这里编辑变量在我的控制器中的范围内,我已经这样声明了它:
因此,如果编辑为假,它应该被绑定,ng-model="name"
如果编辑为真,它应该被绑定,ng-model="singleAppDetails.name"
但它没有按预期绑定它。
此外,我正在使用$http.post
将数据发布到服务器,如下所示:
但这总是发送空数据。
javascript - angularjs 中的 ng-else 指令
我们如何创建ngELSE
与指令相同的ngIF
指令?
下面的代码ngIfDirective
。我们要自定义代码ngELSE
吗?
angularjs - 在两条不同的路线之间使用 ng-if 和 ng-include 进行 ng-animate
我正在尝试在两页之间制作过渡动画。
在控制器上设置变量FirstCtrl
并SecondCtrl
进行ng-if
控制。
问题是动画在第一次运行良好,但在下一次它不起作用。我错过了什么?
路线:
第一个控制器:
第二个控制器:
索引.html
布局.html
CSS(SASS):
重要的:
这是一些调试,以证明动画完全可以直接从视图中操作变量:
javascript - 将AngularJS ng-form对象传递给ng-if?
当我在此处单击“预览”时,预览模式下的保存按钮未禁用http://plnkr.co/edit/I3n29LHP2Yotiw8vkW0i
我认为这是因为表单对象(testAddForm)在 ng-if 的范围内不可用。我知道我应该在我的控制器中使用一个对象,因为它一直被传递下去,但是表单对象是由 angular 创建的,并且在 ng-if 中不可用。我该如何解决这个问题?
JS: