我想觀看我的應用程序中所有元素的隱藏和顯示錶達式。Angular - ng-hide和ng-show的事件
我知道我可以通過包裝與剛剛返回的參數的函數演出指令做:
<div ng-show="catchShow(myShowExpr == 42)"></div>
不過,我喜歡看全部隱藏/顯示了跨在我的應用程序的所有輸入和以上不夠好。
我也可能超載ngShow
/ngHide
指令,雖然我需要重新評估表達式。
我也可以直接修改源,因爲它很簡單:
var ngShowDirective = ['$animator', function($animator) {
return function(scope, element, attr) {
var animate = $animator(scope, attr);
scope.$watch(attr.ngShow, function ngShowWatchAction(value) {
var fn = toBoolean(value) ? 'show' : 'hide';
animate[fn](element);
//I could add this:
element.trigger(fn);
});
};
}];
雖然那時我不能使用谷歌CDN ...
有沒有一種更好的方式任何人能想到的做這個 ?
可以編寫自己的顯示指令,而不是使用'ng-show' – charlietfl 2013-05-06 09:39:59
我可以問問企業需要什麼嗎?我試圖想,如果有更好的方法來做到這一點.. – 2013-05-06 13:39:14
我有一個複雜的形式,當一個元素被隱藏,它需要被清除。目前,我在我自己的幻燈片[動畫](http://code.angularjs.org/1.1.4/docs/api/angular.Module)中執行此操作。儘管如果我決定淡化一個元素,或者立即隱藏/顯示,它很快就會變得非常黑。因此需要一個事件。 由於'ng-show'指令的實現非常簡單,我可能只需要使用@ charlietfl的建議並實現我自己的指令。 – jpillora 2013-05-07 00:54:46