我希望扩展AngularStrap指令(在本例中为typeahead),使其具有比所提供的功能更多的功能。经过一些研究,我认为最好的方法是用我自己的自定义指令包装typeahead指令,这样我就可以扩展它。
我遵循了here关于扩展Angular指令的所有3条建议,但似乎没有一条能让我访问typeahead控制器及其公共函数。
我是不是走错路了?扩展自定义功能的指令的最佳方式是什么?任何帮助都是非常感谢的。
发布于 2014-08-01 05:47:25
在我的例子中,我遵循了与描述there的第二种方法类似的方法。不同之处在于使用'require‘来引用父指令的控制器。
发布于 2014-08-01 06:59:22
如果你查看bsTypeahead指令()的源代码,你会发现它包含两个部分,提供者'$typeahead‘和指令’AngularStraps typeahead‘。我过去发现使用这个库最简单的方法是复制'bsTypeahead‘指令,将其重命名为其他名称,然后修改它的代码,使其按我所希望的那样执行。在本例中,$typeahead提供程序的作用类似于控制器,所有其他AngularStrap指令的工作方式都是一样的。
发布于 2014-08-02 13:49:53
首先,最好的方法绝对是将Angular Strap封装在您自己的Directive中。我已经用不同的Strap指令做了相当多的工作。其次,很难说你需要做什么,因为你没有指定任何具体的目标。但是如果你看一下Angular Strap项目的文档,你会注意到各种各样的提示。在typeahead的情况下,你可以访问$typeaheadProvider,这也是我的一些推测,但是typeahead有一个工具提示依赖,所以你可以使用$tooltip服务在你的包装器中摆弄typeahead。最后,用于typeahead的Angular Strap API相当健壮,再看一看现有的,您也许能够通过使用已有的东西来完成您想要/需要的东西。也就是说,您可以指定一个自定义模板,或者指定不同的前缀事件,在再次查看文档之后,我自己似乎是一个与工具提示作用域方法交互的接口。很抱歉,这篇文章不能更详细地说明你需要做什么,但希望它能让你朝着正确的方向前进。
https://stackoverflow.com/questions/25069159
复制相似问题