跨多个指令共享功能的最佳做法是什么?简单的用例:
directive('colorInput', function() { // user inputs a hex value })
directive('stringInput', function() { // user inputs a string })
并且假设当用户关注输入时会出现HTML用户辅助气泡。然后我们可能会有一个函数来定位相对于输入的气泡,如下所示:
function setBubble(input, bubble) { // position the bubble }
有没有办法保持模块化和封装?或者这是否必须进入有角度的服务或类似?谢谢!
答案 0 :(得分:1)
您应该使用控制器。查看Angular Directive Guide中创建沟通指令部分。创建一个名为inputGroupController的控制器,指令需要它。每当用户专注于输入时,调用baseInputController.setBubble(输入,冒泡)。拿这个Plunker:http://plnkr.co/edit/cUhxYmf9b3S1dsRjQXaG?p=preview