2016-07-24 150 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>