html
  • angularjs
  • 2013-09-27 31 views 7 likes 
    7

    我有一個名字和一個可選主頁的人。我如何可選地將其名稱包裝在錨標籤中?在AngularJS中,我如何可選地將項目包裝在鏈接中

    <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> 
    

    在鐵軌我會使用的方法<%= link_to_unless person.website.blank?, seller.name, seller.website %>

    如何在AngularJS做到這一點的呢?

    回答

    4

    您可以添加以下功能,以您的範圍:

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

    ,或者你可以返工您的HTML類似:

    由OP的評論啓發
    <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> 
    

    (只是一張紙條,ng-if是隻有自從頸部1.1.5以後纔可用;對於舊版本使用ng-showng-hide代替

    或者您可以編寫自定義指令並使用它:

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

    感謝您的三種可能性。作爲一個角度新手,我不確定選擇哪一個。 – zhon

    +0

    我會去第二個,因爲它是快速,容易,並仍然給你一個選項,可以輕鬆地在你的HTML中使用更多的角度指令 – adamziel

    +0

    如果它回答你的問題,請不要猶豫,接受這個答案:) – adamziel

    相關問題