2015-10-08 23 views
0

我的問題是我想根據2個嵌套的ng-repeat指令動態生成範圍變量。當我在DOM中顯示錶達式時它工作正常,但ng-bind內部的相同內容不起作用。 (該指數$工作,但$父$指數不) 這裏是我的代碼:

<div class="panel panel-primary" ng-repeat="device in home.devices"> 
    <div class="panel-heading"> 
     <h3 class="panel-title pull-right"> 
     <a href="#settings"> 
      <em class="fa fa-cog"></em> 
     </a> 
     </h3> 
     <h3 class="panel-title" ng-bind="::device.name"></h3> 
    </div> 
    <div class="panel-body"> 
      <div class="row"> 
      <div class="col-lg-4 text-center" ng-repeat="sensor in device.sensors"> 
       <div class="panel panel-default"> 
        <div class="panel-body"> 

         <h2 ng-if="device.type == 'bm'" ng-bind="t{{$parent.$index}}{{$index}}"></h2> 
         t{{$parent.$index}}{{$index}} 
        </div> 
       </div> 
      </div> 
      </div> 
    </div> 
    </div> 

圖片:$parent.$index in ng-bind does not work

回答

1

我敢打賭,$parent實際上是由ng-if創建範圍。

試一下沒有ng-if,看它是否有效。 然後,使用$parent.$parent.$index

這當然是可怕的。

你可以做ng-show而不是ng-if。它仍然很糟糕,給下一個看到該代碼的開發者留下了一個令人討厭的驚喜,並試圖用ng-if來改進它。但是,嘿,沒有$parent.$parent

如何做到「正確」,是一個很好的問題。

我會盡量不要使用$索引。在devicesensor中是否有一些ID用於相同的事情?這可能具有額外的優點,即對於給定的物品總是具有相同的價值,不管順序如何,如果這是重要的。

+0

是的,這是問題所在。我知道這不是最好的代碼,但它需要服務於這個目的,直到我獲得更多時間並找到更好的解決方案。 – CroModder

相關問題