【问题标题】:AngularJS: (ng-)Hide an element but not its childrenAngularJS:(ng-)隐藏一个元素但不隐藏它的孩子
【发布时间】:2013-04-03 03:17:00
【问题描述】:

如何创建一个类似于 ng-show 的指令来隐藏一个元素但不隐藏子元素?

我在想url 变量是否存在角模板

<a ng-show-link="url" ng-href="{{url}}">
  <img ng-src="picture.png" />
</a>

会打印出来

<a href="/url">
  <img src="picture.png" />
</a>

,如果url 不存在

<img src="picture.png" />

。与 ng-repeat 一起使用时,将有助于减少额外的容器元素。

【问题讨论】:

    标签: angularjs


    【解决方案1】:

    我认为拥有一个&lt;img&gt; 标签会更容易,然后如果存在url,则使用&lt;a&gt; 标签编写一个指令以包装它。添加/包装比删除现有标签更干净。

    虽然在您看来有点冗余,但您也可以在没有指令的情况下执行此操作:

    <a ng-show="url" ng-href="{{url}}"><img src="picture.png" /></a>
    <img ng-hide="url" src="picture.png" />
    

    【讨论】:

    【解决方案2】:

    创建一个自定义指令并将其应用于&lt;a&gt; 标记并在属性中传递 url。 如果未定义 url,请使用 JQuery dom 操作删除 &lt;a&gt; 并将 &lt;img&gt; 保留在原位。

    尽管禁用链接或使用javascript:; 代替它要简单得多。尝试删除 &lt;a&gt; 是一种过早的优化。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-22
      • 1970-01-01
      • 2014-03-02
      • 2020-03-02
      • 2013-02-18
      • 1970-01-01
      相关资源
      最近更新 更多