2013-06-23 80 views
1

我想隱藏每個使用ng-hide指令的沒有內容的標籤(簡單文本)。 下面是我想要實現的:

<div class="menu-head" ng-hide="c1.section == ''">{{c1.section}}</div>

但是這不起作用。然而,下面的兩個評估爲真(用於測試目的我設置c1.section字段的「第1」的值)和相應的div變爲隱藏的:

<div class="menu-head" ng-hide="c1.section == c1.section">{{c1.section}}</div>
<div class="menu-head" ng-hide="c1.section == 'Section 1'">{{c1.section}}</div>

的c1.section是經由如何在標籤爲空時隱藏標籤(不包含文本)

<div ng-repeat="c1 in col1"> 

訪問從該控制器:

function MenuCtrl($scope) { 
    "use strict"; 
    $scope.col1 = MenuData.col1; 
    $scope.col2 = MenuData.col2; 
    $scope.col3 = MenuData.col3; 
} 

當對象COL1可以,或可以不包含字段 '部分'。所以很明顯,無論何時從對象中缺少一個字段(任何字段),我都希望它的div在DOM中丟失/不顯示。這裏的MenuData對象:

var MenuData = { 
    col1: [ 
     {section: 'Section 1'}, // <-here the fields id, name, price and descr are missing so their divs must not show up in the DOM. 
     { 
      id: '1', 
//   section: 'Section 2', <- here the field section is missing (commented-out). 
      name: 'Position 1', 
      price: '2.50', 
      descr: 'some description' 
     }, 
     {section: 'Section 3'}, 
     { 
      id: '2', 
      section: 'Section 4', 
      name: 'Position 2', 
      price: '4.75', 
      descr: '' 
     } 
    ] 
}; 

我如何NG隱藏的表達,以評估爲「真」時,有在「c1.section」數據綁定沒有內容?

+0

什麼是'c1.section'?你最初設定的是什麼?它是'空字符串'還是可能未定義? –

+1

你可以用'ng-show'來代替嗎? – imaginaryboy

+0

@BenjaminGruenbaum我已經更新了我的問題。 –

回答

7

您應該能夠使用下面的代碼:

<div ng-hide="!c1.section"> 

這將隱藏divc1.section等於''或當c1對象不具有section財產。

我在http://plnkr.co/edit/aOe7Vc8lmYf43ODkCymx?p=preview

希望幫助建立一個工作Plnkr爲您提供方便!

+0

太棒了!按原樣工作。現在我看到了解決方案,看起來很明顯。傻我。 :) –

+0

太棒了,很高興我能幫到你! – jvandemo

+0

如何在HTML表格爲空的情況下使用它? – Skyrim