覆盖Angulars ngShow和ngHide的某些标签

时间:2015-02-04 12:26:37

标签: angularjs twitter-bootstrap angularjs-directive

我目前正在使用Bootstrap和AngularJS,并尝试使用Angular包装一些Bootstrap组件。我写了一个关于打开和关闭崩溃的指令。 如果我以某种方式命名该指令,它工作正常,但如果我可以扩展ngShow和ngHide,它将是geat。

这是我的指示:

app.directive('collapse', function () {
    return {
        restrict: 'C',
        priority: 99,
        link: function(scope, element, attrs) {

            // Watch ng-show attribute and perform the correct actions
            scope.$watch(attrs.ngShow, function(value){
                if(value == true) {
                    $(element).collapse('show');
                } else {
                    $(element).collapse('hide');
                }
            });

            // Same for ng-hide
            scope.$watch(attrs.ngHide, function(value){
                if(value == false) {
                    $(element).collapse('show');
                } else {
                    $(element).collapse('hide');
                }
            });
        }
    };
});

我知道我可以完全删除ngShow的行为,但我想删除仅使用.collapse-Class的标签的默认行为。

app.config(function($provide){
    $provide.decorator('ngShowDirective', ['$delegate', function($delegate) {
        $delegate.shift();
        return $delegate;
    }]);
});

有没有办法做到这一点?

0 个答案:

没有答案