当前位置: 首页 > 面试题库 >

有条件地将target =“ _ blank”添加到Angular JS的链接

易祯
2023-03-14
问题内容

我正在Angular JS中构建导航树。树中的大多数链接都指向我的网站内的页面,但有些链接可能指向外部网站。

如果链接的href以http://或https://开头,那么我假设该链接是针对外部站点的(正则表达式/^https?:\/\//就可以了)。

我想将target =“ _ blank”属性应用于这些链接。创建链接时,我希望使用angular来做到这一点:

<ul>
    <li ng-repeat="link in navigation">
        <a ng-href="{{link.href}}" [add target="_blank" if link.href matches /^https?:\/\//]>{{link.title}}</a>
    </li>
</ul>

谁能帮我吗?

谢谢


问题答案:

我将按照建议创建一个指令,然后意识到您实际需要做的就是:

<a ng-attr-target="{{(condition) ? '_blank' : undefined}}">
  ...
</a>

ng-attr-xyz允许您动态创建@xyz,如果undefined没有值,则创建属性-正是我们想要的。



 类似资料:
  • 问题内容: 我正在尝试使用指令根据某个属性的值将属性添加到指令。不幸的是,这对我不起作用。我设置了一个简单的示例来演示正在发生的事情。 柱塞示例 问题答案: 编辑 在阅读了Angular Repo中提到的GitHubIssue之后,我终于明白了。 您需要使用更高的指令设置一个属性,并将其属性设置为true(在编译我们的指令后,跳过所有其他指令的编译)。然后在函数中,我们将编译整个元素本身。但是在此

  • 让我更多地解释一下这个向导(组装您的PC):我们在本节中有3个步骤, 步骤1:用户从现有产品中选择主板、Ram、Cpu等。 步骤2:查看列表并可以更改某些产品的数量(如Ram) 步骤3:用户在页面底部看到带有一些选项的最终列表,这些选项可以 选择装配费用(1.不装配,只购买列表2.装配有一年保修3.装配有无保修),当他们点击“提交”时,所有选择的产品都被添加到购物车,这是我们需要添加该费用的地方,

  • 问题内容: 我想创建一个有条件添加成员的对象。简单的方法是: 现在,我想编写一个更惯用的代码。我在尝试: 但是,现在是,其值为的成员。这不是期望的结果。 有方便的解决方案吗? 更新资料 我寻求一个可以解决几个成员的一般情况的解决方案。 问题答案: 在纯Javascript中,我想不出比您的第一个代码片段更惯用的东西。 但是,如果不是不可能使用jQuery库,那么$.extend()应该符合您的要求

  • 是否有一种方法可以使用单个流来实现? 用两个独立的流很容易做到这一点,但我不能只用一个。

  • 我看到HTML5 sessionStorage在跟踪Weblinks时的不同行为。有时第一个页面的sessionStorage被复制到TargetPage,有时我在TargetPage上得到一个空的sessionStorage。 谁能给我解释一下,为什么会这样? 给定以下链接: 任何帮助都很感激!

  • 问题内容: 如果满足特定条件,是否有办法仅向React组件添加属性? 我应该在渲染后基于Ajax调用将required和readOnly属性添加到表单元素中,但是由于readOnly =“ false”与完全省略该属性不同,因此我看不到如何解决此问题。 下面的示例应解释我想要的内容,但将无法正常工作(解析错误:意外的标识符)。 问题答案: 显然,对于某些属性,如果您传递给它的值不真实,React足