【问题标题】:Why the UI-Bootstrap popover does not appear when inside an ngIf?为什么在 ngIf 中不会出现 UI-Bootstrap 弹出框?
【发布时间】:2016-09-23 09:57:01
【问题描述】:

代码说明了一切。
我知道 ngIf 会从 DOM 中删除或克隆元素,但我不明白为什么 popover 指令会受到影响(popover-is-open)。
笨蛋:https://plnkr.co/edit/eym62cur2cg1qyZzpQaf?p=preview

<div>
    <input type="text" 
      uib-popover="This one will appear" 
      popover-placement="right"     
      popover-is-open={{true}}
    />
</div>

<div  ng-if="true">
    <input type="text" 
      uib-popover="This one will not appear because of ngIf even if true" 
      popover-placement="right"     
      popover-is-open={{true}}
      placeholder="Why the ngIf prevent the popover to appear ??"
    />
</div>

【问题讨论】:

    标签: angularjs angular-ui-bootstrap popover angular-ng-if


    【解决方案1】:

    您对自己的问题有答案。既然您已经知道ng-if 将删除 DOM 元素,请使用ng-show 来解决您的问题。

    【讨论】:

    • 我知道。我想了解为什么。这是一个错误吗?
    • 据我了解,这不是错误。因为它在评估 ng-if 后动态添加元素,所以我认为 pop-over 到那时就已经初始化了。由于 ng-show 隐藏/显示(但元素已经存在于 html 中),弹出窗口无论如何都会绑定到它。这就是为什么当你使用 ng-if 时它不显示的原因。希望这是有道理的。
    猜你喜欢
    • 2015-07-15
    • 1970-01-01
    • 1970-01-01
    • 2018-09-17
    • 2017-06-10
    • 1970-01-01
    • 2019-06-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多