0

angular.js 関数内で addClass 関数を使用しようとしていますlinkが、バグが見つかったと思います。

問題:

テンプレートの属性内に補間演算子 ( {{}})がある場合、サイレントに失敗し、新しいクラスは追加されません。classaddClass

例えば ​​-

このリンク機能を考慮すると、次のようになります。

angular.module('myApp', []).directive('afterRepeat', function() {
    return  {        
        link: function(scope,element, attrs){                                                
                if (scope.$index%2==0){
                    element.addClass("special");
                }
            }
    }
});

このテンプレートは機能し、クラスを適切に追加します

<div class="item" ng-repeat="item in items" after-repeat>item {{$index}}</div>

このテンプレートは

<div class="item{{$index}}" ng-repeat="item in items" after-repeat>item {{$index}}</div>

問題を示すjsFiddle を次に示します。

これは、リンク関数の後に属性値が評価されるために発生すると思いますが、それは私には意味がありません。リンク関数はチェーンの最後のステップであるべきではありませんか?

誰かがこれを克服する方法について考えを持っていますか?

4

1 に答える 1