javascript - 使用 ng-repeat in Angular 从二维数组构建表格

标签 javascript arrays angularjs angularjs-ng-repeat

我想从具有以下方案的数组构建一个表:

var items = [
    {
        name: 'xxx',
        configurations: [
            { 
                image: 'aaa.jpg'
            },
            { 
                image: 'bbb.jpg'
            },
            ...
        ]
    },
    {
        name: 'yyy',
        configurations: [
            { 
                image: 'ccc.jpg'
            },
            { 
                image: 'ddd.jpg'
            },
            ...
        ]
    },
    ...
]

我想用所有元素的所有图像获得一行(每个图像都嵌套在一个 <td> 中,例如:

<tr>
    <td>
        <img src="aaa.jpg">
    </td>
    <td>
        <img src="bbb.jpg">
    </td>
    <td>
        <img src="ccc.jpg">
    </td>
    <td>
        <img src="ddd.jpg">
    </td>
</tr>

如何用 Angular 来做到这一点?到目前为止我的代码如下所示:

<tr>
    <td ng-repeat-start="proposition in items">
        <img ng-src="{{::proposition.configurations[0].image}}" />
    </td>
    <td ng-repeat-end>
        <img ng-src="{{::proposition.configurations[1].image}}" />
    </td>
</tr>

但显然有一些configurationsproposition是动态的,那么我如何迭代它,保持相同的 html 方案?

最佳答案

您必须运行两个 ng-repeat,一个用于项目,另一个用于配置

编辑

最简单的方法是展平数组。 因此,您将拥有一个包含 <image, name> 元组的长数组。

您可以使用 map 来做到这一点:

这是代码:

 $scope.items =  [
    {
        name: 'xxx',
        configurations: [
            { 
                image: 'yyy.jpg'
            },
            { 
                image: 'yyy2.jpg'
            }
        ]
    },
    {
        name: 'yyy',
        configurations: [
            { 
                image: 'zzz.jpg'
            },
            { 
                image: 'zzz2.jpg'
            }
        ]
    },
];

  $scope.items = $scope.items.map(function(item){
    return item.configurations.map(function(inner){
        return { name: item.name, image: inner.image};
    })
  })

  $scope.items = $scope.items.concat.apply([], $scope.items);

您有一个完整的工作示例 here .

关于javascript - 使用 ng-repeat in Angular 从二维数组构建表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36999664/

相关文章:

ios - Swift 中的算术运算符数组

javascript - 函数不返回 $http 响应

arrays - 如何在 MATLAB 中找到 3D 数组每个切片的最大值和位置?

javascript - XMLHttpRequest - event.loaded 和 event.total 值的问题

javascript - 正则表达式/其他方法在输入时读取用户电子邮件地址并分别隐藏/显示 div

javascript - Emscripten,Embind,错误 : no instance of constructor

Javascript 创建具有属性的对象作为动态对象

javascript - Google MAP 区域坐标和多边形

angularjs - 光滑的网格包裹在指令( Angular )中,某些选项不起作用(调整大小和拖放列)

javascript - `it()`函数在这里做什么?