ng-repeat with function inside

时间:2013-09-04 09:04:40

标签: javascript angularjs

我的产品有如下数组:

$scope.products = [
  {proId:"1",
   proName:"test",
   proPrice:["35","57","67"],
   proSize:["3,5","4,7","7,10"],
   proSizePx:[["30","50"],["40","50"],["70","10"]],
   proHSize:["S","M","L"]
  },

  {proId:"2",
   proName:"Second",
   proPrice:["35","45"],
   proSize:["3,5","4,6"],
   proSizePx:[["30","50"],["40","50"]],
   proHSize:["S","M"],
  },

 {proId:"3",
  proName:"test",
  proPrice:"35",
  proSize:"3,5",
  proHSize:"S",
}
];

如何以这样的方式显示它并知道活动的大小?

http://s9.postimg.org/50vtm5cpb/my_dream.gif

我找过这样的应用程序但找不到。

1 个答案:

答案 0 :(得分:0)

我不打算设置所有内容,因为它与javascript / angular(问题的标签)不太相关,但这里是如何实现这一点:

存储所选尺寸的数组索引,然后使用它来确定要显示的其他项目。因此,如果选择“L”,则索引为2. proPrize [2]表示“L”的价格,proSize [2]表示测量,proSizePx [2]表示w / e表示“L”。

示例:http://jsfiddle.net/TheSharpieOne/G9zQ8/(点击每个产品的尺寸,将填充该尺寸的信息)

一切都在模板中完成,控制器只包含产品数据。

以下是完成所有工作的模板:

    <div>
        <span class="size" data-ng-repeat="size in product.proHSize" data-ng-click="product.selectedSize = $index" data-ng-class="{selected: product.selectedSize == $index}">{{size}}</span>
    </div>
    <div>proPrice: {{product.proPrice[product.selectedSize]}}</div>
    <div>proSize: {{product.proSize[product.selectedSize]}}</div>
    <div>proSizePx: {{product.proSizePx[product.selectedSize]}}</div>
    <div>proHSize: {{product.proHSize[product.selectedSize]}}</div>