2016-03-23 14 views
1

スコープ値の変更にアニメーションクラスを適用しようとしていますが、ディレクティブはここでは呼び出されません。angularjsディレクティブが呼び出されていません

<md-card animateOnChange="currentCard.fab_id"> 
    <md-card-header-text> 
     <span class="md-subhead">Id: {{currentCard.fab_id}} </span> 
    </md-card-header-text> 
    </md-card-header> 
</md-card> 

指令:

.directive('animateOnChange', function($timeout) { 
    return function(scope, element, attr) { 
     scope.$watch(attr.animateOnChange, function(nv,ov) { 
      if (nv!=ov) { 
       element.addClass('animated shake changed'); 
       $timeout(function() { 
        element.removeClass('animated shake changed'); 
       }, 1000); 
      } 
     }); 
    } 
    }) 
+0

」の代わりに、を追加してみましたか? – e11438

+0

関数の右端に表示されているものを教えてください。 –

答えて

0

試してみてください。

<md-card animate-on-change="currentCard.fab_id"> 

と:

scope.$watch(attr.animateOnChange, function(nv,ov) {...} 

angularjsはディレクティブと属性を正規化しているため。 https://docs.angularjs.org/guide/directive

+0

ありがとうございます。私はそれを無視しました:)もう1つのこと、animate.cssのアニメーションシェイククラスは適用されませんが、CSSクラスは適用されません。何か案が? –

+0

3つのクラスを追加したり削除したりしていますか?それとも1つしかありませんし、タイプミスがありますか? – Thierry

関連する問題