我正在尝试创建一个指令,以允许用户按部分使用箭头键导航页面。但我也希望能够将这些部分分散在 dom 周围,并且在添加和删除内容时不会中断。我可以想到几种方法来做到这一点,但没有一个是令人满意的:
使用控制器创建一个指令,让其他指令自己注册(并在 $destroy 上取消注册)。但是如果我稍后在中间添加一些东西,这将是不正常的。另外,我试过用这种方式编写它,它的代码似乎比必要的要多。
每当用户点击箭头键时,创建一个空数组,并 $broadcast 一个事件,并带有回调指令以在该列表中注册自己。然后,一旦该列表已满,就前进或后退。他们(应该?)按照他们在 DOM 上的顺序返回,但我不确定,因为这种方式看起来很疯狂和 hackish。
用 css 标记“可选项”的东西,并在 jquery 中以简单的方式编写,如下所示:在新的点击事件上,
var all = $('.tabbable')
然后用它做显而易见的事情。但我真的不想那样做,因为它不是“角度”的方式。不是出于某种纯粹的感觉,而是因为我将其构建为更大的小部件库的一部分,并且我希望他们可以访问此功能。
那么,有没有什么方法可以让我获得某种类型的所有指令的范围,而无需求助于奇怪的黑客,或将逻辑散布到各处?