Angularjs中同一语句中的双重绑定

Double binding in the same statement in Angularjs

本文关键字:绑定 语句 Angularjs      更新时间:2023-09-30

我在一个表中有2个ng重复,如下所示:

<tr>
    <th ng-repeat="header in headerdata">{{header}}</th>
</tr>
<tr ng-repeat="row in data">
    <td ng-repeat="header in headerdata">{{row.header}}</td>
</tr>

在这里,我希望{{row.header}}中的标头与来自标记中headerdata的标头中的值绑定。

我尝试了类似{{row.(header)}}的操作,但它会返回一个函数并引发控制台错误。

我该怎么做?

更新:

我的行数据是json数据,而我的头数据是包含头的array,头也是数据中的键。我这样做的原因是行数据中的顺序不正确。

好吧,我想我明白了,我来重述一下。因此,您的headerdata数组按某种顺序显示这些信息是正确的。数据数组的顺序不正确。因此,您正试图使用"headerdata"顺序来显示"data"数据。

听起来你可以使用角度过滤器,特别是orderBy:https://docs.angularjs.org/api/ng/filter/orderBy

如果你找不到适合你的过滤器,那么你应该在自定义过滤器或控制器中根据你的需要重新排列数据数组,而不是试图做你想做的奇怪的事情。

您的问题是ng repeat为它的每次迭代创建新的作用域。

你需要这个:

<tr ng-repeat="row in data">
    <td ng-repeat="header in headerdata">{{$parent.row.header}}</td>
</tr>