【问题标题】:My directive stops working combined with another.. Angular.js我的指令停止与另一个指令结合使用.. Angular.js
【发布时间】:2017-05-30 15:49:43
【问题描述】:

我有一个指令来动态编辑一个名为“点击编辑”的字段。如果我单击一个项目,我可以毫无问题地对其进行编辑。

<span ng-click="ignoreClick($event);" >
  <a href='' click-to-edit item="faq" ng-model='faq.pregunta'
     typeinput='textarea'>{{faq.pregunta}}
  </a>

我有一个过滤器,当找到一个单词时会突出显示它,这个过滤器被称为 “高光”。如果我添加行

ng-bind-html="faq.pregunta | highlight:search.pregunta"

我无法点击编辑该字段。

但过滤器可以让我突出显示。我不需要错过编辑字段的功能,而不会在突出显示文本时损坏它。我该如何解决这个问题?

https://jsfiddle.net/jv5o6s8y/

【问题讨论】:

  • 无意冒犯,但这是一个问得不好的问题。您的指令中的“模板”非常混乱,并且您有很多我认为与问题无关的 cmets。
  • @ZombieChowder 好的,我会改正的。
  • @ZombieChowder jsfiddle.net/jv5o6s8y
  • 非虚拟机。我只是在写你的答案
  • 不知道对不起。我只知道删除 .filter 后一切正常。

标签: javascript angularjs angular-ui-bootstrap


【解决方案1】:

ng-bind-html 的问题在于它替换了指令的模板,这就是为什么您无法在指令内单击的原因(带有切换的原始ng-click 将不起作用),它不包含初始模板。 您应该在指令模板中的某处突出显示文本,例如:

<div class="hover-text-field" ng-show="!editState" ng-click="toggle()" ng-bind-html="model | highlight:search.pregunta"></div>

,检查这个工作jsfiddle

【讨论】:

  • 你检查过我的 jsfiddle 了吗?什么不适合你?我可以编辑打开部分内的内容。
  • 要允许编辑标题,我们也应该对其进行相同的更改 - 只需将 ng-bind-html 替换为 search="search" 绑定 - jsfiddle
猜你喜欢
  • 2013-11-23
  • 1970-01-01
  • 1970-01-01
  • 2016-09-26
  • 2018-06-05
  • 1970-01-01
  • 2016-09-05
  • 1970-01-01
  • 2017-12-02
相关资源
最近更新 更多