Css ngClassOdd/NGCLASSEEN未按预期工作

Css ngClassOdd/NGCLASSEEN未按预期工作,css,angularjs,angularjs-ng-class-even,angularjs-ng-class-odd,Css,Angularjs,Angularjs Ng Class Even,Angularjs Ng Class Odd,使用Angular版本1.2.15,我发现了一个bug,它似乎是从版本1.2.2开始的,直到1.2.15 Html <body ng-app=""> <ol ng-init="names=['John', 'Mary', 'Cate', 'Suz','Felipe','Vero']"> <li ng-repeat="name in names"> <span ng-class-odd="'shared odd'" ng-

使用Angular版本1.2.15,我发现了一个bug,它似乎是从版本1.2.2开始的,直到1.2.15

Html

<body ng-app="">
     <ol ng-init="names=['John', 'Mary', 'Cate', 'Suz','Felipe','Vero']">
     <li ng-repeat="name in names">
      <span ng-class-odd="'shared odd'" ng-class-even="'shared even'">
        {{name}}
      </span>
     </li>
   </ol>
</body
您将看到奇怪的样式如何在第三个元素上不起作用

这个问题有解决办法吗


如果不是,升级或降级什么更有意义

从您的Plunkr中,看起来您根本没有得到“共享”类

另一种方法是将
ng class
$index


这是一个已知的错误,已经修复,为什么不更新到
v1.2.16

它在
v1.2.16
上正常工作

如果您想继续使用
v1.2.15
,您应该使用Morgan的解决方案(
ng class
+
$index
),或者在
ngClassOdd
/
ngclass偶
中只包含一个类:

<span class="shared" ng-class-odd="'odd'" ng-class-even="'even'">
注意:
由于
ngRepeat
显示的项目列表是基于0的,因此第一个元素(
$index:0
)被认为是奇数,而我们(人类)希望第一个元素被认为是偶数。因此,请确保“反向”应用这些类。
ngClass+$index
方法也是如此。


建议的解决方案仍然是升级到
v1.2.16

以防万一,使用所有3个
v1.2.15
解决方案。

**`ng class odd`和`ng class偶数`的值可以是字符串:`ng class odd=“'myClass'”或表达式`ng class odd=“{myClass:boolExpression}”`**
**The value of `ng-class-odd` and `ng-class-even` can be a string: `ng-class-odd="'myClass'"` or an expression `ng-class-odd="{myClass: boolExpression}"`**

Also:

**Angular 1.2+**: `ng-class="{even: $even, odd: $odd}"`

    <ul>
        <li ng-repeat="name in names">
           <span> ng-class="{even: $shared even, odd: `enter code here`$shared odd}">{{name}}</span>

        </tr>
    </ul>
    <hr />

**Angular < 1.2** `ng-class="{even: !($index%2), odd: ($index%2)}"`
也: **角度1.2+**:`ng class=“{偶数:$偶数,奇数:$奇数}”`
  • ng class=“{偶:$shared-偶,odd:`在这里输入代码`$shared-odd}”>{{name}

**角度<1.2**`ng class=“{偶数:!($index%2),奇数:($index%2)}”`
看起来只有应用了其中一种样式,它才有效。一个可能的解决方法是将偶数样式设置为默认值,然后将其更改为奇数行(反之亦然)。我想他现在已经有了他正在寻找的选项,我很想看看他选择了什么。@Morgandeley:我们已经忘记了
$even
/
$odd
ngRepeat
公开的
$odd
属性。我认为现在OP有了所有可用的选项:)看起来升级是更安全/正确的方法,因为它只是一个小升级是的!我很喜欢升级!(我在最新的生产项目中使用了
v1.3.0-beta.7
,但不要告诉我的老板:哼,这是另一个线程的复制和粘贴:
<span ng-class="$even?'shared odd':'shared even'">
**The value of `ng-class-odd` and `ng-class-even` can be a string: `ng-class-odd="'myClass'"` or an expression `ng-class-odd="{myClass: boolExpression}"`**

Also:

**Angular 1.2+**: `ng-class="{even: $even, odd: $odd}"`

    <ul>
        <li ng-repeat="name in names">
           <span> ng-class="{even: $shared even, odd: `enter code here`$shared odd}">{{name}}</span>

        </tr>
    </ul>
    <hr />

**Angular < 1.2** `ng-class="{even: !($index%2), odd: ($index%2)}"`