2016-07-24 93 views
0

這是我到目前爲止有:訪問嵌套NG-重複變量

<div ng-repeat="storeSection in main.foodBySection" ng-show="main.sortBy === 'storeSection'"> 
     <h4>{{ storeSection.category }}</h4> 
     <div ng-repeat="ingredient in main.ingredients | orderBy: 'name'" 
      ng-if="ingredient.storeSection === {{ storeSection.category }}"> 
     <p><input type="checkbox" ng-model="ingredient.added"/> {{ ingredient.name }} <span 
      class="ingredient-source">- {{ ingredient.source }}</span></p> 
     </div> 
    </div> 

基本上,我只是想顯示具有相同類別作爲頭main.ingredients的項目,但我不能訪問{{storeSection.category}},一旦我使用新的ng-repeat。有任何想法嗎?

+1

爲什麼要使用插值?只需使用'storeSection.category',[ng-if](https://docs.angularjs.org/api/ng/directive/ngIf)即可使用角度表達式 –

+0

知道了!謝謝! –

+0

我在下面回答了同樣的問題,如果這解決了您的問題,您可以將其標記爲已接受 –

回答

0
<div ng-repeat="storeSection in main.foodBySection" ng-show="main.sortBy === 'storeSection'"> 
     <h4>{{ storeSection.category }}</h4> 
     <div ng-repeat="ingredient in main.ingredients | orderBy: 'name'" 
      ng-if="ingredient.storeSection === storeSection.category "> 
     <p><input type="checkbox" ng-model="ingredient.added"/> {{ ingredient.name }} <span 
      class="ingredient-source">- {{ ingredient.source }}</span></p> 
     </div> 
    </div> 

不要插storeSection.categoryng-if作品與angular-expressions就像左手操作ingredient.storeSection通過它得到評估

1
<div ng-repeat="storeSection in main.foodBySection" ng-show="main.sortBy === 'storeSection'"> 
     <h4>{{ storeSection.category }}</h4> 
     <div ng-repeat="ingredient in main.ingredients | orderBy: 'name'" 
      ng-if="ingredient.storeSection === storeSection.category"> 
     <p><input type="checkbox" ng-model="ingredient.added"/> {{ ingredient.name }} <span 
      class="ingredient-source">- {{ ingredient.source }}</span></p> 
     </div> 
    </div> 
0

作爲另一個答案指出,問題的原因是您在ngIf指令中使用interpolation,哪一個指令適用於angular-expressions

提示:(在你的第一個<div>)的

使用最好ngIf代替ngShow

我也建議你使用本地filter而不是使用ngIf這個檢查(在ngRepeat),並使用ngRepeat#special-repeats

所以,你可以有這樣的事情:

<div ng-repeat-start="storeSection in main.foodBySection" ng-if="main.sortBy === 'storeSection'"> 
    <h4 ng-bind="storeSection.category"></h4> 
</div> 
<div ng-repeat-end ng-repeat="ingredient in main.ingredients | filter: { storeSection: storeSection.category } | orderBy: 'name'"> 
    <p> 
    <input type="checkbox" ng-model="ingredient.added" /> {{ ingredient.name }} <span class="ingredient-source">- {{ ingredient.source }}</span></p> 
</div>