我想观看我的应用程序中所有元素的隐藏和显示表达式。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