- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 ng-repeat
迭代一个对象数组。每个对象都有一个 type
属性和一个 contents
数组。在 ng-repeat
中,我想根据对象的 type
显示不同的 contents
数组,所以我有条件地显示内容使用 ng-if
。
问题是,无论 ng-if
是真还是假,ng-repeat
都在执行和渲染,而当 ng-如果
是假的,它不会删除 ng-repeat
DOM 元素。
我不确定实现是否有问题,或者这些 Angular 指令是否不应该像这样使用 - 或者是否有更好的方法来解决 Angular 问题。
下面是片段,这里是一个有效的插件:http://plnkr.co/edit/FZQ5CM8UFOepNIHHuTD4?p=preview
HTML:
<div ng-controller="FunkyCtrl as vm">
<div ng-repeat="thing in vm.twoThings">
<p ng-if="thing.type === 'apple'">
<span>Type: {{thing.type}}</span>
<ul>
<li ng-repeat="content in thing.contents">Food: {{content.stuff}}</li>
</ul>
</p>
<p ng-if="thing.type === 'dog'">
<span>Type: {{thing.type}}</span>
<ul>
<li ng-repeat="content in thing.contents">Guts: {{content.stuff}}</li>
</ul>
</p>
</div>
</div>
脚本:
(function(angular) {
angular.module('funkyStuff', []);
angular.module('funkyStuff').controller('FunkyCtrl', FunkyCtrl);
function FunkyCtrl() {
var vm = this;
vm.twoThings = [
{
type: 'apple',
contents: [
{
stuff: 'apple slices'
},
{
stuff: 'juice'
}
],
},
{
type: 'dog',
contents: [
{
stuff: 'bones'
},
{
stuff: 'meat'
}
]
}
];
}
})(angular);
预期输出:
类型:苹果
类型:狗
实际输出:
类型:苹果
食物:果汁
内脏:苹果片
内脏:果汁
食物:骨头
类型:狗
最佳答案
这是因为您的 HTML 无效。 ul
元素不允许在 p
中使用。
如果您检查呈现的 HTML,您会注意到 ul
已在 p
之外呈现(当然这可能取决于浏览器的实现)。
将 p
替换为 div
,您将获得预期的结果。
演示: http://plnkr.co/edit/pBVZ4jIJ5qzRsa8xZbud?p=preview
如果你想知道 p
中允许哪些元素,你可以找到一个很好的答案 here .
关于angularjs - ng-repeat inside ng-if rendering despite falsey ng-if 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34498304/
假设flag是一个 undefined variable 。当在浏览器中本地运行脚本时,我可以运行如下所示的 IF 语句: if(flag){ //do stuff } 这在浏览器中运行良好。然而
我有一个 JavaScript 函数,我想知道是否有更好的方法来完成以下代码的功能... const func = (foo = defaultFoo) => { const f = foo ||
稀疏数组示例: // first let array = new Array(3); // second let array = [1,,3]; // third let array = [1, 2,
呈现页面时,未分配 falseys 的 Ember 类属性。我有两个按钮元素是/否。非事件按钮有一个呈现不透明度的类:.3那工作正常。但是我需要在这些按钮上设置默认行为,以便在呈现页面时"is"处于非
我想在 Mongo 集合中查询特定字段缺失或具有在 Python 中计算为 false 的值的文档。这包括原子值 null、0、''(空字符串)、false、[ ]。但是,包含此类值的数组(例如 ['
我正在学习 JavaScript 基础知识。我对“真”和“假”的结果感到困惑。谁能告诉一下这是什么原因吗? myVariable = undefined ? "truthy" : "falsey";
我正在解决一个问题,即函数 array_diff 返回数组 a 中的值,而该值也在数组 b 中。 由于我一直在了解命名函数表达式比匿名粗箭头函数更适合控制台调试,因此我尝试使用命名 removeDup
问题 我有一个看起来像这样的抽象路由:#/app/lists/:label。 当用户创建一个 'Breakfasts' 的“标签”时,这很棒。 但是,当 label 值为 '#All' 时,则 $st
基本上我可以做以下... var obj = {}: obj.falsey = true; if(obj){ //code not executed }else{ //code execu
我想使用查询结果作为 useState 的初始值。 const {data, loading, error} = useQuery(GET_INFO) const [value, setValue]
我在传递给过滤器的谓词中犯了一个错误,得到了一个奇怪的结果。我当然应该写 emp.gender === "F"。尽管如此,鉴于 undefined 是错误的,我希望 femaleEmployees 是
我有一个 ng-repeat 迭代一个对象数组。每个对象都有一个 type 属性和一个 contents 数组。在 ng-repeat 中,我想根据对象的 type 显示不同的 contents 数组
v-show 根据 index 切换元素的最佳解决方案是什么,我设法完成了切换部分,但是当您单击当前打开的元素时不会关闭。 {{ btn.name }} {{ btn.de
我是一名优秀的程序员,十分优秀!