AngularJS 指令可以要求一个或另一个指令吗?

Can an AngularJS Directive Require One Directive or Another?

能否将 AngularJS 指令设置为需要一个或另一个指令?

我正在创建两种类型的按钮,它们可以打开带有附加选项的菜单。

<dropdown-button>
</dropdown-button>

其行为类似于 Bootstrap 的下拉按钮。

还有一个...

<split-dropdown-button>
</split-dropdown-button>

这相当于拆分按钮的替代方案。

两者都需要一个菜单​​定义,这是以完全相同的方式完成的,所以我想创建一个(例如)button-menu 指令,它需要 dropdown-button split-dropdown-button.

这可能吗?

如果一个指令只能完全需要一个或多个,有什么替代方案?

不好意思,在平板电脑上工作,但这里有一些伪代码:

app.directive('buttonMenu', function(){ 
return {
require: ['?dropdownButton', '?dropdownSplitButton'],
restrict: 'E',
link: function(scope, element, attrs, controllers){
if(!controllers[0] && !controllers[1])
//freak out
else
//scope things