我正在尝试创建一个指令,允许用户使用箭头键逐节浏览页面。但我也希望能够将这些部分分散在dom中,并且在添加和删除东西时不会中断这些部分。我能想到的几种方法可以做到这一点,但他们都不是令人满意的:Angularjs:查找指令的所有实例
创建一个控制器,让其他指令自己注册一个指令(和注销在$销毁)。但是如果我稍后在中间添加一些内容,这将会失灵。另外,我试过用这种方式写它,而且看起来好像没有必要的代码。
每当用户敲击箭头键时,创建一个空数组,然后$广播一个事件,用回调指令在该列表上注册自己。然后,一旦这个列表已满,向前或向后退出。他们(应该?)按照他们在DOM中的顺序回来,但我不确定,因为这种方式看起来很疯狂和骇人听闻。
用css标记'tabbable'的东西,然后用jquery写这个简单的方法,就像这样:在一个新的点击事件中,
var all = $('.tabbable')
,然后做那个很明显。但我真的不想这样做,因为它不是'有角度'的方式。不是出于某种纯粹的感觉,而是因为我将它作为一个更大的小部件库的一部分来构建,并且我希望这个功能可以被他们接受。
那么,有没有什么办法,我让某一类型的所有指令的范围,而不诉诸怪异的黑客,或者所有的地方出蔓延的逻辑是什么?
任何有关处理该数组在排序时进行排序的建议? – doubledriscoll 2013-04-04 05:09:35
我想在提出建议之前,我需要先了解一些要求。您是否希望按照DOM插入等顺序进行排序? – 2013-04-04 05:13:41