html - 在 AngularJS 中,我如何选择将项目包装在链接中

标签 html angularjs

我有一个人,有名字和可选的主页。我如何选择将他们的名字包装在 anchor 标记中?

<ul ng-repeat='person in people'>
  <li>
    <a href="{{person.website}}">
      {{person.name}}
    </a>
  </li>
</ul>

或者在 person.website 的情况下为零

<ul ng-repeat='person in people'>
  <li>
    {{person.name}}
  </li>
</ul>

在 rails 中我会使用方法 <%= link_to_unless person.website.blank?, seller.name, seller.website %>

我如何在 AngularJS 中执行此操作?

最佳答案

您可以将以下函数添加到您的范围:

$scope.linkToUnless = function(condition, label, href) {
    return condition ? '<a href="'+href'+">'+label+'</a>' : label;
};

或者您可以将您的 HTML 重写为:

<ul ng-repeat='person in people'>
  <li>
    <a href="{{person.website}}" ng-if="person.website">
      {{person.name}}
    </a>
    <span ng-if="!person.website">
        {{person.name}}
    </span>
  </li>
</ul>

(只是受 OP 评论启发的注释,ng-if 仅在 anugular 1.1.5 之后可用;对于旧版本,请使用 ng-showng-hide 改为

或者您可以编写自定义指令并像这样使用它:

<link-to-if href="person.website" label="person.name" />

关于html - 在 AngularJS 中,我如何选择将项目包装在链接中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19060100/

相关文章:

html - 如何使用 URL 嵌入视频

html - 如何将单件商品的数量和价格传递给 PayPal?

javascript - 使用 jQuery 的水平指示器

angularjs - ionic : No back button when navigating away from tab view

javascript - 当我们想要检查该类是否存在时,如何使用条件语句?

html - svg mask rect 在 firefox 中没有维度

javascript - Angular UI 路由器无法在 Chrome 应用程序上运行

node.js - 有没有在ipad上创建服务器的好方法? (Node.js 或 Jetty)

mysql - AngularJS 指令无法检查 null

javascript - 如何在禁用模式下更改 seiyria bootstrap-slider 的工具提示背景颜色?