Angularjs 如果ng内有多个条件,则ng重复未按预期工作

Angularjs 如果ng内有多个条件,则ng重复未按预期工作,angularjs,angularjs-directive,angularjs-ng-repeat,angular-ng-if,Angularjs,Angularjs Directive,Angularjs Ng Repeat,Angular Ng If,除非我弄错了,否则我在一些本该有效的东西上遇到了麻烦 我有一个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>

除非我弄错了,否则我在一些本该有效的东西上遇到了麻烦

我有一个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}}:{{value}
问题是: 如果我只使用
键!='键1'
起作用,不显示键1的键和值

如果我只使用
value!=null
也适用,不显示键4

但是,当我将if语句与| |(OR)组合时,整个if语句将被忽略

我做错什么了吗

我在这里发布了一个示例:

先走一步

请参见下面的演示

一切都很好,只是说说而已

(true || false) = true
var someModule=angular.module('myModule',[]);
someModule.controller('SomeController',函数($scope){
$scope.list={
键1:“val1”,
键2:“val2”,
键3:“val3”,
键4:空
};
});

  • {{key}}:{{value}
请参见下面的演示

一切都很好,只是说说而已

(true || false) = true
var someModule=angular.module('myModule',[]);
someModule.controller('SomeController',函数($scope){
$scope.list={
键1:“val1”,
键2:“val2”,
键3:“val3”,
键4:空
};
});

  • {{key}}:{{value}

如果你想两者都消失,它应该是“&&”而不是“||”!(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>    

  • {{key}}:{{value}


  • {{key}}:{{value}

如果你想两者都消失,它应该是“&&”而不是“||”!(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>    

  • {{key}}:{{value}


  • {{key}}:{{value}

我不会为此发布答案,你所要做的就是用&&&替换| |,想想看,你希望两个条件都被满足,而不是其中一个。我不会发布答案,你所要做的就是用&&替换| |,想想看,你希望两个条件都被满足,而不是其中一个。谢谢。还有@sylvester,谢谢你的解释:(真的| |假)=真的,忘了那件事吧!非常感谢。还有@sylvester,你救了我一天。我是用这种方式写的,但它不起作用
ng if=“key!=“key1”| key==null”
可能与angular解析条件的方式有关谢谢。还有@sylvester,谢谢你的解释:(真的| |假)=真的,忘了那件事吧!非常感谢。还有@sylvester,你救了我一天。我是用这种方式写的,但它不起作用
ng if=“key!=“key1”| key==null”
可能与angular解析条件的方式有关