【问题标题】:How can I make two directives communicate with each other? [closed]如何使两个指令相互通信? [关闭]
【发布时间】:2018-03-04 06:18:39
【问题描述】:

我对 Angular js 很陌生。有没有办法让两个指令相互通信?我试过使用

require: "^mydirective"

由于某些奇怪的原因无法正常工作

【问题讨论】:

标签: javascript angularjs directive


【解决方案1】:

关于指令提示:

[?][^][directiveName]

^ 用于指定应该使用哪个指令控制器(“继承自”)。因此,例如指令<column-item> 需要找到父指令控制器<crtl-grid>

底线 ^ 表示 Angular 查找 DOM 以找到父指令。

? = 表示 angular 该指令是可选的,如果找不到,angular 不会抛出异常。

【讨论】:

  • 你能看看这个codepen并告诉我我做错了什么吗? codepen.io/Brushel/pen/pWbzqM?editors=1011
  • @ThomasBrushel 试图回答您对上一篇文章的评论,但发现 codepen 已更改(这就是为什么最好将所有相关代码包含在帖子中而不是外部资源中),现在问题是您的atomHeading 指令中没有controller(但您需要它来向其他指令公开API),但您有link - 这导致控制台Controller 'atomHeading', required by directive 'truncator', can't be found! 中的错误。
  • @StanislavKvitash 笔就在这里。我把它截断了。我只需要获取链接以显示更多文本,而不是显示是否未达到 maxCharacters codepen.io/Brushel/pen/LzRdej 我分叉了这个,所以我将拥有它的副本
  • @ThomasBrushel 我想,我已经在你之前的帖子so here is edited codpen 中帮助你实现了这一点,只需进行一些重构并将内联js 从模板移动到链接函数。
  • @StanislavKvitash 再次感谢您的帮助。我还有一个问题。有没有办法可以在没有属性的情况下使用%atom-heading?现在,如果我使用它,我会收到错误 {{ truncatorBindings.text | limitTo: length }}
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-25
  • 2020-04-25
  • 2017-12-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多