我目前正在使用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;
}]);
});
有没有办法做到这一点?