2013-11-23 36 views
0

在條件我有這樣的代碼:角度。更具體地,如果陣列

<div style="cursor:pointer;padding-top:3px;padding-left{{arrow_pos[road.id+'_'+scale.year+'_'+scale.week]}}px" > 
    <div class="arrow_title">{{arrow_title[road.id+'_'+scale.year+'_'+scale.week]}}</div> 
    <div class="{{arrow[road.id+'_'+scale.year+'_'+scale.week]}}"></div> 
</div> 

如何ng-if使得隨着 Arrow [road.id + '_' + scale.year + '_' + scale.week]產生這段代碼不爲空。

我嘗試這樣做:

<div ng-if="arrow_title[road.id+'_'+scale.year+'_'+scale.week] !=''"> 
    same code for the two inner divs 
</ div> 

AngularJS v1.0.7

,但它不工作。 如何解決我的問題。

回答

1

表達:

arrow_title[road.id+'_'+scale.year+'_'+scale.week] !='' 

看起來您正在arrow_title對象上動態訪問屬性。

如果這是正確的,結果很可能不是''(除非屬性值是字符串)。結果將是屬性值或undefined

由於@musically_ut介紹,ng-if不1.0.7,但您可以使用ng-show這個表達式:

<div ng-show="arrow_title[road.id+'_'+scale.year+'_'+scale.week]"> 
same code 
</ div> 
2

ng-if僅適用於Angular 1.2以上版本。

否則,語法看起來正確。

有一對夫婦的工作解決方法角1.0.7:

  1. 使用ng-show/ng-hide與相同條件
  2. 使用ng-switch

    <div ng-switch="arrow_title[road.id+'_'+scale.year+'_'+scale.week] !=''"> 
        <div ng-switch-when="true"> 
         <!-- your code --> 
        </div> 
    </div>