繁体   English   中英

在角度中,如何仅在没有尾随标记的情况下将ng-if用于包含标签

[英]In angular, how can I use ng-if for the containing tag only without the trailing markup

假设我有两个具有相同标签的HTML元素,但每个元素具有一组不同的属性。 我如何有条件地在它们之间进行选择?

我有以下两个标签:

<a ui-sref="root.one(::{param: value})">
<a target="_blank" href="{{::model}}">

我需要有条件地选择其中之一,并添加其他标记,直到结束标记。 这样的事情可以工作吗?

<a ng-if="::condition" ui-sref="root.one(::{param: value})">
<a ng-else target="_blank" href="{{::model}}">
  <div>
    more nodes
  </div>
</a>

最后,我认为这是不可能的,因此我采取了如下合并A标签的方法:

<a ng-attr-target="{{::!condition? '_blank' : undefined}}" href="{{::model}}" ng-attr-ui-sref="{{::(condition? 'root.one(::{param: value})' : '.')}}">

备注:

  1. 满足条件时,会将ng-attr-target表达式设置为undefined,以便根本不会插入target属性。 显然,如果将其设置为_self,则会弄乱角度路由
  2. 当不满足条件时,将ng-attr-ui-sref表达式设置为一些未声明的随机ui-sref路由-'。'。 通常,如果不想插入属性,只需将其设置为undefined即可,但是ui-sref或angular中存在一些错误,这会在控制台中导致一些错误,因此我不得不采用此方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM