AngularJS,ng-repeat

时间:2015-06-26 22:40:16

标签: javascript angularjs ionic-framework

我试图在AngularJS中填写2列表格。我使用ng-repeat指令来填写表格,但它并没有像我计划的那样工作。我的$ scope.items是:[Coors,Jameson,Bacardi,Corona]  我希望桌子看起来像这样:

|库尔斯(0)|詹姆森(1)|

|百加得(2)| Corona(3)|

然而,它看起来像这样:

|库尔斯(0)|库尔斯(1)|

|百加得(2)|百加得(3)|

我很困惑为什么我脚本中的[$ index + 1]指令只在脚本的实际文本部分(括号中)中工作,而div似乎没有正确显示项目[$ index + 1],而是显示项目[$ index]。这是我的剧本:

<div class=row ng-repeat="item in items" ng-if="$index %2 ==0">
  <div class="col col-50" ng-if="$index < items.length">
    <item-card item="{{item[$index]}}"></item-card>
    ({{$index}})
  </div>
  <div class="col col-50" ng-if="$index +1 < items.length">
    <item-card item="{{items[$index+1]}}"></item-card>
    ({{$index+1}})
  </div>
</div>

任何人都知道为什么这可能无法正常工作?

编辑:包括itemcard.html。

<div class = "card" >
  <img id = "cardImage" ng-src= "data:image/jpeg;base64,{{item.image}}" width = "100%"/>
      {{item.cartQuantity}}
  <cardHeader>{{item.itemName}}</cardHeader><br>
  <cardHeader ng-if= "item.paksize >1">{{item.paksize}} pack</cardHeader>
  <button class="button" ng-click="addToCart(item)">+</button>
  <button class="button" ng-click="decrementCart(item)">-</button>
</div>

1 个答案:

答案 0 :(得分:0)

你要做的事对我来说似乎有些奇怪。您可以考虑使用lodash.chunk,而不是尝试使用Directive Fu将public class FakeNotificationMailer : MailerBase, INotificationMailer { MvcMailMessage preBuiltMessage; public NotificationMailer(MvcMailMessage result) { preBuiltMessage = result; } public virtual MvcMailMessage Notify(string message) { return preBuiltMessage; } } 数组拆分为2列的偶数块吗?

items

如果您想成为Angular(双关语!),您可以将<script> angular.module('example', [ ]) .run(function($scope){ $scope.items = _.chunk([ /* . . . */ ], 2); }); </script> <div ng-app="example"> <div class=row ng-repeat="chunk in items"> <div class="col col-50"> <item-card item="{{chunk[0]}}"></item-card> ({{$index}}) </div> <div class="col col-50"> <item-card item="{{chunk[1]}}"></item-card> ({{$index+1}}) </div> </div> </div> 注册为自定义过滤器:

lodash.chunk