AngularJS架构:跨指令的共享实用程序

时间:2014-03-07 03:54:54

标签: javascript angularjs angularjs-directive

跨多个指令共享功能的最佳做法是什么?简单的用例:

directive('colorInput', function() { // user inputs a hex value })
directive('stringInput', function() { // user inputs a string })

并且假设当用户关注输入时会出现HTML用户辅助气泡。然后我们可能会有一个函数来定位相对于输入的气泡,如下所示:

function setBubble(input, bubble) { // position the bubble }

有没有办法保持模块化和封装?或者这是否必须进入有角度的服务或类似?谢谢!

1 个答案:

答案 0 :(得分:1)

您应该使用控制器。查看Angular Directive Guide创建沟通指令部分。创建一个名为inputGroupController的控制器,指令需要它。每当用户专注于输入时,调用baseInputController.setBubble(输入,冒泡)。拿这个Plunker:http://plnkr.co/edit/cUhxYmf9b3S1dsRjQXaG?p=preview