【问题标题】: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


    【解决方案1】:

    就我而言,我采用了类似于there 描述的第二种方式的方法。 不同之处在于使用 'require' 来引用父指令的控制器。

    How to require a controller in an angularjs directive

    【讨论】:

      【解决方案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 您可以指定自定义模板,或指定不同的前缀事件,在我自己再次查看文档后,这似乎是与工具提示范围方法交互的接口。很抱歉,这不能更详细地说明您需要做什么,但希望它能让您朝着正确的方向前进。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-08-18
          • 2020-02-13
          • 2017-09-14
          • 2018-05-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多