2014-12-13 28 views
0

我需要在視圖上顯示地址。例如 德克薩斯州理查森123街12號公寓1樓75081如果angularJS表達式不爲空,則後綴爲逗號

例如,用戶可以跳過輸入樓層的值,在這種情況下,我必須刪除樓層後可見的逗號。需要這樣的東西 -

{{streetAddress + ", "}}{{apartment + ", "}}{{floor + ", "}}{{city + ","}}{{state + ","}}{{zipCode}} 

comma應該只能顯示錶達有一定的價值,而不是空。

在上面的語句,如果地板是空的,它會顯示 - 街,空,公寓... 我試圖避免像

<span ng-show="streetAddress">{{streetAddress}},&nbsp;</span> 
<span ng-show="floor">{{floor}},&nbsp;</span> 

等繁瑣的寫作..

回答

0

做到在控制器:

var fullAddress = [], 
components = [fullAddress,apartment,floor,city,state,zipCode]; 
// ES5 
components.forEach(function(item) { 
    if (item) { 
    fullAddress.push(item); 
    } 
}); 
// pre-ES5 
for (i=0;i<components.length;i++) { 
    if (components[i]) { 
    fullAddress.push(components[i]); 
    } 
} 
$scope.fullAddress = fullAddress.join(","); 

然後你的模板很容易:

<span>{{fullAddress}}</span> 
0

如果需要逗號的情況與這個地址隔離,那麼控制器應該足夠了。但是,如果您可以考慮一個您希望在整個應用中共享此功能的情況,我會建議您使用過濾器來處理添加逗號。使用像

{{ streetAddress | commaFilter }} 

angular.module('yourModule', []).filter('commaFilter', function() { 
    return function(input) { 
    return input ? input + 'j' : ''; 
    }; 
}); 

相關問題