Javascript AngularJS:ngIf在具有不同属性的数组的数组中
我的目标:Javascript AngularJS:ngIf在具有不同属性的数组的数组中,javascript,angularjs,angularjs-ng-repeat,angular-ng-if,Javascript,Angularjs,Angularjs Ng Repeat,Angular Ng If,我的目标: objects = [ { name: "1", foo: [{ value: 0.5, ignored: null, text: "foo1" }, { value: 0, ignored: null, text: "foo" }] }, { name: "2", foo: [{ value: 0, ignored: null,
objects = [
{
name: "1",
foo: [{
value: 0.5,
ignored: null,
text: "foo1"
}, {
value: 0,
ignored: null,
text: "foo"
}]
},
{
name: "2",
foo: [{
value: 0,
ignored: null,
text: "foo"
}, {
value: 0.5,
ignored: null,
text: "foo2"
}]
},
{
name: "3",
foo: [{
value: 0.5,
ignored: null,
text: "foo3"
}]
},
{
name: "4",
foo: [{
value: 0,
ignored: 1,
text: "foo4"
}]
},
{
name: "5",
foo: [{
value: 0,
ignored: null,
text: "foo5"
}]
}]
我的AngularJs模板html:
<div class="row" ng-repeat="object in objects">
{{ object.name }}
<div ng-repeat="foo in object.foo">
<div ng-if="foo.value > 0 || foo.ignored == 1">
{{ foo.text }}
</div>
</div>
</div>
但我不想在5号案例中显示object.name
请在第一次ng repeat
中如何使用第二次ng repeat
和ng if
<div class="row" ng-repeat="object in objects" ng-if="...???...">
{{ object.name }}
any text !!
</div>
{{object.name}
任何文本!!
如果,您可以在ng中使用过滤功能
更改的模板:
<div class="row" ng-repeat="object in objects" ng-if="myFilter(object)">
{{ object.name }}
<div ng-repeat="foo in object.foo">
<div ng-if="foo.value > 0 || foo.ignored == 1">
{{ foo.text }}
</div>
</div>
</div>
结果:
1
foo1
2
foo2
3
foo3
4
foo4
你可以简单地做:
<div class="row" ng-repeat="object in objects">
<div ng-repeat="foo in object.foo">
<div ng-if="foo.value > 0 || foo.ignored == 1">
{{ object.name }}
{{ foo.text }}
</div>
</div>
</div>
{{object.name}
{{foo.text}
如果您事先知道object.foo中只有一个元素可以通过ngIf。(就像你的例子一样)你的数组不是数组的数组,而是对象的数组。请你澄清一下“不同性质”是什么意思?这是否意味着objects
中的元素可以有不同的结构?@FlorianLim,对不起,我重新编辑了我的帖子,那么你为什么不把ng if=“object.foo.value>0 | | object.foo.ignored==1”
放在主ngRepeat
指令上呢?@AlonEitan,foo是array@sgrillon哦,我没看到那个编辑。foo
可以包含多个对象,还是总是包含一个对象?很抱歉,在您的解决方案中,object.name
会多次显示。
1
foo1
2
foo2
3
foo3
4
foo4
<div class="row" ng-repeat="object in objects">
<div ng-repeat="foo in object.foo">
<div ng-if="foo.value > 0 || foo.ignored == 1">
{{ object.name }}
{{ foo.text }}
</div>
</div>
</div>