2014-12-11 33 views
0

說我有一些文字,如:渲染只有{{變量}}定義

The data is ready. Here it is: {{something}} 

我想只渲染行,如果somethingundefined。我怎樣才能做到這一點?

萬一有幫助,這裏是在更廣闊的背景下,線:

<html> 
<body> 
<div> 
<div class='container-fluid' ng-controller="TypeaheadCtrl"> 

<input type="text" ng-model="selected" 
typeahead="name_and_uid as item.name_and_uid for item in items | 
filter:{name_and_uid: $viewValue} | limitTo:16" 
typeahead-on-select='onSelect($item, $model, $label)' class="form-control"> 

The data is ready. Here it is: {{name_and_uid}} 

</div> 
</body> 
</html> 

其中{{name_and_uid}}選擇完成後才能確定。

目前,我在獲得"The data is ready. Here it is:"之前做出選擇。我只希望在我輸入並進行選擇後呈現。

回答

2

您可以在範圍定義:

$scope.isDefined = function(v) { 
      return angular.isDefined(v); 
     }; 

然後

<div ng-show="isDefined(name_and_uid)"> 
    The data is ready. Here it is: {{name_and_uid}} 
</div> 
+0

非常行之有效。謝謝 – 2014-12-11 21:35:24

0

假設輸入ng-model的長度最初爲0,則可以使用ng-show來僅在$scope.selected大於零時呈現該行。

<div ng-show="selected.length > 0"> 
    <span>The data is ready. Here it is: {{name_and_uid}}</span> 
</div>