2014-11-23 110 views
2

我試圖使用自定義指令火的動畫,「激活」這是我作爲一個屬性在這裏使用,諧音/ test.html的自定義指令與觀察者只會觸發一次。不看

<div activate="{{cardTapped}}" > 

我定義的指令下在我的應用程序定義js/app.js

myApp.directive('activate', function ($animate) { 
    return function(scope, element, attrs) { 
    scope.$watch(attrs.activate,function(newValue){ 
     console.log('fire'); 
     if(newValue){ 
     $animate.addClass(element, "full"); 
     } 
     else{ 
     $animate.removeClass(element, "full"); 
     } 
    },true); 
    }; 
}); 

但是,$ watch僅在頁面加載時觸發。當cardTapped更改值時,沒有任何寄存器。我試過幾個參數變化無濟於事,我見過類似這樣的一打問題,但到目前爲止我還沒有找到解決方案

有什麼想法?

+0

嘗試'ATTRS。$ observe' – harishr 2014-11-23 13:21:33

回答

0

問題是,你是這樣寫的:activate="{{cardTapped}}"而它應該是activate="cardTapped"

當你想使用一個觀察者時,讓它看一個變量,而不是一個字符串。

JS Fiddle

+0

如果你想觀看更改的屬性是什麼?這不是解決方案...我希望它是一個字符串,並觀察屬性,而不是一個變量。 – Relic 2016-04-21 23:42:06