ng-if 在 ng-repeat 中有多个条件无法按预期工作
ng-if with multiple conditions inside ng-repeat not working as expected
我遇到了一些本应有效的问题,除非我弄错了。
我有一个 key:value 对象设置如下:
{
key1:"val1",
key2:"val2",
key3:"val3",
key4:null
}
在我看来我有这个:
<div class="col-md-4" ng-repeat="(key, value) in list" ng-if="key != 'key1' || value != null">
<ul>
<li>{{ key }} : {{ value }} </li>
</ul>
</div>
问题:
如果我只使用key != 'key1'
works, key1 的键和值是不显示的。
如果我只用value != null
也行,key4不显示。
但是当我将 if 语句与 || 组合在一起时(OR),整个 if 语句被忽略。
我是不是做错了什么?
我在这里发布了一个示例:http://jsfiddle.net/caxoyud2/
提前致谢!
请看下面的演示
一切正常只是声明
(true || false) = true
var someModule = angular.module('myModule', []);
someModule.controller('someControler', function($scope) {
$scope.list = {
key1: "val1",
key2: "val2",
key3: "val3",
key4: null
};
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myModule">
<div ng-controller="someControler">
<div class="col-md-4" ng-repeat="(key, value) in list" ng-if="!(key != 'key1' && value != null)">
<ul>
<li>{{ key }} : {{ value }}</li>
</ul>
</div>
</div>
</div>
如果您希望两者都消失,则应使用“&&”而不是“||”。 !(key == 'key1' || value == null),当'||'内部取反时变成“&&”。
<div class="col-md-4" ng-repeat="(key, value) in list" ng-if="key != 'key1' && value != null">
<ul>
<li>{{ key }} : {{ value }} </li>
</ul>
</div>
或
<div class="col-md-4" ng-repeat="(key, value) in list" ng-if="!(key == 'key1' || value == null)">
<ul>
<li>{{ key }} : {{ value }}</li>
</ul>
</div>
我遇到了一些本应有效的问题,除非我弄错了。
我有一个 key:value 对象设置如下:
{
key1:"val1",
key2:"val2",
key3:"val3",
key4:null
}
在我看来我有这个:
<div class="col-md-4" ng-repeat="(key, value) in list" ng-if="key != 'key1' || value != null">
<ul>
<li>{{ key }} : {{ value }} </li>
</ul>
</div>
问题:
如果我只使用key != 'key1'
works, key1 的键和值是不显示的。
如果我只用value != null
也行,key4不显示。
但是当我将 if 语句与 || 组合在一起时(OR),整个 if 语句被忽略。
我是不是做错了什么?
我在这里发布了一个示例:http://jsfiddle.net/caxoyud2/
提前致谢!
请看下面的演示
一切正常只是声明
(true || false) = true
var someModule = angular.module('myModule', []);
someModule.controller('someControler', function($scope) {
$scope.list = {
key1: "val1",
key2: "val2",
key3: "val3",
key4: null
};
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myModule">
<div ng-controller="someControler">
<div class="col-md-4" ng-repeat="(key, value) in list" ng-if="!(key != 'key1' && value != null)">
<ul>
<li>{{ key }} : {{ value }}</li>
</ul>
</div>
</div>
</div>
如果您希望两者都消失,则应使用“&&”而不是“||”。 !(key == 'key1' || value == null),当'||'内部取反时变成“&&”。
<div class="col-md-4" ng-repeat="(key, value) in list" ng-if="key != 'key1' && value != null">
<ul>
<li>{{ key }} : {{ value }} </li>
</ul>
</div>
或
<div class="col-md-4" ng-repeat="(key, value) in list" ng-if="!(key == 'key1' || value == null)">
<ul>
<li>{{ key }} : {{ value }}</li>
</ul>
</div>