我正在创建一个网格小部件的复杂指令,但我不确定我应该在哪里公开网格指令 API,即它的属性(例如selectedItems
)和方法(例如scrollRowIntoView(rowIndex)
)。
我正在考虑的选项是:
- 在范围上公开 API (我的指令定义了一个隔离范围)。
- 在指令的控制器中公开 API (如果我理解正确,这就是在 中所做的
ngFormDirective
)。 - 在范围上公开一个网格对象,进而公开 API。
- 先前选项之间的某种混合(例如,作用域上公开的属性,控制器中的方法)。
我想知道的是:
- 此用例是否有最佳实践?
- 每种替代方案的优缺点是什么?
- 还有其他有效的替代方案吗?
谢谢!