2016-12-27 31 views
0

假設我有兩個具有相同標籤的HTML元素,但每個元素具有不同的屬性集。我如何有條件地在他們之間進行選擇?在角度上,我如何使用ng-if僅包含標籤而沒有尾隨標記

我有以下兩個標籤:

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

而不是使用'href'屬性,使用angular''ngHref'就像這樣:'

+0

錨標記本身並不重要。它可以在任何標籤上,任何屬性。 –

回答

0

在我想這是不可能的結束,所以我使出合併的一個標籤是這樣的:

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

備註:

  1. 當條件滿足時,NG -attr-target表達式設置爲undefined,以便根本不會插入目標屬性。顯然,如果你將它設置爲_self,它會使角度路由混亂
  2. 當條件不滿足時,ng-attr-ui-sref表達式被設置爲一些隨機未聲明的ui-sref路由 - '。'。通常,如果你不想插入屬性,你可以將它設置爲undefined,但是ui-sref或angular中有一些錯誤,導致控制檯出現一些錯誤,所以我不得不採取這種方法。
相關問題