0

我的问题是 ng-if 的行为不像我假装的那样,我有一个具有 _name 属性的对象数组,我正在制作一个 ng-repeat,在里面我想区分一些以特定方式命名的对象和其他对象。基于我制作我的 ng-if,但是打印了两次行并且它的内容应该是一个或另一个,任何人都可以指出我失败的地方?tks

在 clusterEntity.cluster 中的数组下方;

       locations:{
          location:[
            {_name: "staging", _path: ""},
            {_name: "temp", _path: ""},
            {_name: "working", _path: ""}
          ]
        },

<div ng-repeat="location in clusterEntity.cluster.locations.location">

    <div ng-if="
                location._name === 'staging' || 
                location._name === 'working' || 
                location._name === 'temp'">
      <something here>
    </div>


    <div ng-if="
                location._name !== 'staging' || 
                location._name !== 'working' || 
                location._name !== 'temp'">

      <something there>
    </div>
  </div>
4

1 回答 1

3

你的第二个ng-if应该使用逻辑 AND,而不是 OR:

<div class="row" ng-if="location._name !== 'staging' && location._name !== 'working' && location._name !== 'temp'">

这与以下内容相同:

<div class="row" ng-if="!(location._name === 'staging' || location._name === 'working' || location._name === 'temp')">

您可以ng-switch改用,但您的代码不会更短。

于 2014-11-06T18:25:55.627 回答