【问题标题】:What is the correct way to extend an AngularStrap directive?扩展 AngularStrap 指令的正确方法是什么?
【发布时间】:2014-08-02 13:49:53
【问题描述】:
我希望扩展一个 AngularStrap 指令(在本例中为 typeahead)以提供更多功能。经过一番研究,我认为最好的方法是用我自己的自定义指令包装 typeahead 指令,以便我可以扩展它。
我已经按照 here 找到的所有 3 条建议来扩展 Angular 指令,但它们似乎都没有让我访问 typeahead 控制器及其公共功能。
我是不是走错了路?扩展自定义功能指令的最佳方式是什么?非常感谢任何帮助。
【问题讨论】:
标签:
angularjs
angularjs-directive
angular-strap
【解决方案2】:
如果您查看 AngularStraps 预输入指令 (Link) 的来源,您会发现它有两个部分,提供者; '$typeahead' 和指令'bsTypeahead'。我过去发现这个库最简单的方法是复制“bsTypeahead”指令,将其重命名为其他名称,然后修改它的代码以按照我的意愿进行操作。 $typeahead 提供者在这种情况下就像控制器一样工作,所有其他 AngularStrap 指令的工作方式相同。
【解决方案3】:
首先,最好的方法肯定是将 Angular Strap 指令包装在您自己的指令中。我已经用不同的 Strap Directives 做了很多。其次,很难具体说明您需要做什么,因为您没有指定任何具体目标。但是,如果您查看 Angular Strap 项目的文档,您会注意到各种提示。在 typahead 的情况下,您可以访问 $typeaheadProvider,这也是我的一些推测,但 typeahead 具有工具提示依赖项,因此您可以使用 $tooltip 服务在包装器中摆弄 typahead。最后,用于 typeahead 的 Angular Strap API 非常强大,再看看已经可用的东西,你也许可以通过使用你已经拥有的东西来完成你想要/需要的东西。 IE 您可以指定自定义模板,或指定不同的前缀事件,在我自己再次查看文档后,这似乎是与工具提示范围方法交互的接口。很抱歉,这不能更详细地说明您需要做什么,但希望它能让您朝着正确的方向前进。