2015-10-12 113 views
2

初學者問題: 我需要創建一個html元素,這取決於控制器變量。 我得到一些數據作爲JSON的控制器,現在我想創建視圖。 JSON的,我可以有角鏈接或跨度

{ 
    "text": "England", 
} 

{ 
    "text": "England", 
    "url": "http://england.com/" 
} 

問題來了: 我想如果沒有URL提供創建一個跨度,其他的鏈接(A)。能夠做到這一點,而無需創建兩個元素,並使用NG-顯示或NG隱藏?

+1

各種方式...'NG-if' ..,'NG-之開關,或自定義指令數據解析成模板命名幾 – charlietfl

回答

4

有幾種不同的方法可以處理它。顯示隱藏會的工作,你也可以使用天然氣,如果像這樣:

<span ng-if="url == null"></span> 
<a ng-if="url != null" href="url"></a> 

ng-if如果失敗的話,不像隱藏/顯示其將在DOM,但使用對象將不會呈現在DOM對象樣式來顯示和隱藏它。

你也可以只是有一個跨度的ng-click。如果沒有網址,點擊可能不會返回任何內容。

<span ng-click="myFunction(url)"></span> 
$scope.myFunction = function(url){ 
    if(!url){ 
    return null; 
    } else{ 
    window.location.href = url; 
    } 
}