Javascript 角度1:具有多个条件的多个条件,或者如果其他条件为真,如何排除条件
现在我已经创建了一个额外的跨度来保存一个条件Javascript 角度1:具有多个条件的多个条件,或者如果其他条件为真,如何排除条件,javascript,angularjs,Javascript,Angularjs,现在我已经创建了一个额外的跨度来保存一个条件 <div ng-repeat="(key, resultLinks) in resultGroup.resultLinks"> <div ng-if="key < 4 || viewMore" ng-repeat="(subKey, linksWrap) in resultLinks.linksWrap"> <span ng-if="wWidth > 568 || subKey ==
<div ng-repeat="(key, resultLinks) in resultGroup.resultLinks">
<div ng-if="key < 4 || viewMore" ng-repeat="(subKey, linksWrap) in resultLinks.linksWrap">
<span ng-if="wWidth > 568 || subKey == 0" ng-repeat="links in linksWrap.links">
{{links.linkName}}
</span>
</div>
</div>
{{links.linkName}
您将如何更改它以使所有条件都在一个分区中。例如:ng if=“(key<4 | | viewMore)| |(wWidth>568 | | subKey==0)”(类似于此,但不完全相同)。比如,如果另一个条件为真,是否可能以某种方式排除另一个条件
如果另一个条件为真,是否可能以某种方式排除一个条件
这正是OR(|
)操作符正在做的事情。如果(key<4 | | viewMore)
为true
则不会进一步执行,(wWidth>568 | | subKey==0)
将不会执行
这应该起作用:
<div ng-if="(key < 4 || viewMore) || (wWidth > 568 || subKey == 0)" ng-repeat="(subKey, linksWrap) in resultLinks.linksWrap">
<span ng-repeat="links in linksWrap.links">
{{links.linkName}}
</span>
</div>
{{links.linkName}
正如你所看到的,它看起来很难看。我会将逻辑移出模板:
<div ng-if="isVisible(key, subKey)"... >
在控制器中的某个位置:
$scope.isVisible = function(key, subKey){
return (key < 4 || $scope.viewMore) || ($scope.wWidth > 568 || subKey == 0)
}
$scope.isVisible=函数(键,子键){
返回(键<4 | |$scope.viewMore)| |($scope.wWidth>568 | |子键==0)
}
这就是你要找的吗
(key < 4 || viewMore) && (wWidth > 568 || subKey == 0)
(key<4 | | viewMore)和&(wWidth>568 | | subKey==0)
就像OT一样,我错过了&&而不是| |。为什么它在DOM中很丑?我看不出为什么我应该把代码分成两个地方,而我可以把它放在一个地方,是吗?丑陋是非常主观的:)有些人把他们的代码放在
标签中。