0
我想用$動畫庫,應用一些CSS類和我的指令中我想切換某個範圍變量值onve的CSS動畫完成。我想用ng-show
指令,當該條件滿足(scope.showPopover === true
)我要展示的項目,那麼它必須消逝顯示一個DIV。我有一個自定義指令來執行CSS褪色和重置爲NG-顯示的條件......這是我的代碼
<!-- here is the popover, the showPopover and popoverNeeded scope variables are in my controller -->
<div data-ng-if="popoverNeeded === true" class="nav-popover" data-fade-animation data-ng-show="showPopover">
I am a popover that will toggle, then fade away....
</div>
這裏是我的控制變量...
$scope.popoverNeeded = true;
$scope.showPopover = false;
這裏是我的定製指令
.directive('fadeAnimation', function ($animate) {
'use strict';
return {
restrict: 'A',
priority: 800,
link: function (scope, element) {
console.log(scope.showPopover); // false
scope.$watch(scope.showPopover, function (newValue, oldValue) {
console.log(newValue, oldValue); // undefined undefined
if(newValue === true) {
$animate.addClass(element, 'fade-animiate').then(function() {
element.removeClass('fade-animiate');
scope.showPopover = false;
});
}
});
}
};
});
這裏是我的CSS ...
.fade-animiate {
animation: fade-animiate 2s;
-webkit-animation: fade-animiate 2s;
animation-fill-mode: forwards;
animation-delay: 5s;
-webkit-animation-delay: 5s; /* Safari and Chrome */
-webkit-animation-fill-mode: forwards;
}
@keyframes fade-animiate {
from {
opacity: 1;
display: block;
}
to {
opacity: 0;
display: none;
}
}
@-webkit-keyframes fade-animiate {
from {
opacity: 1;
display: block;
}
to {
opacity: 0;
display: none;
}
}
現在,當視圖/頁面加載scope.showPopover
值輸出是正確的,我們看到false
在控制檯中。手錶值作爲undefined, undefined
輸出。然而,當我切換scope.showPopover
值手錶什麼都不做。我的指令並不是很強大,任何人都可以告訴我我錯在哪裏。
在此先感謝。
OMG!當然!現在,我得到類型錯誤:無法讀取的未定義的屬性「parentNode」。但是,這是偉大的建議! – 2015-03-02 17:01:22