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

Javascript Angularjs中同一语句中的双重绑定,javascript,angularjs,html,Javascript,Angularjs,Html,我在表格中有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> {{header}} {{row.

我在表格中有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>

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

我尝试了类似{row.(header)}}的方法,但它会返回一个函数并抛出一个控制台错误

我该怎么做

更新:


我的行数据是一个
json
数据,我的headerdata是一个
数组
,它包含头,头也是数据中的键。我这样做的原因是因为行数据中的顺序不正确。

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

你需要这个:

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

{{$parent.row.header}

好的,我想我明白了,我会重述一遍。因此,您的headerdata数组的顺序是您希望显示正确信息的顺序。数据数组的顺序不正确。因此,您正试图使用“headerdata”顺序来显示“data”数据

听起来您可以使用角度过滤器,特别是orderBy:


如果找不到适合您的筛选器,那么您应该在自定义筛选器或控制器中根据需要对数据数组进行重新排序,而不是尝试执行这种奇怪的操作。

它确实创建了一个新的作用域,但它是一个子作用域,因此您可以通过原型继承从父级访问所有属性。这不应该是问题所在。当覆盖
标题
时,原型继承将不起作用,在本例中使用
$parent
是一种合理的方法。要使用继承,需要更改
ng repeat
变量。您可以创建一个演示吗?行是什么样子的。您需要提供更多信息。headerdata是行对象内部的数组吗?headerdata是一个完全独立的数组吗?考虑一下您在“row.header”中尝试执行的操作,其中row是一个对象,header是数组中的某个对象。这是行不通的。需要有关您尝试执行的操作的更多信息。headerdata和data是两个不同的范围变量。但是数据中的键以特定的顺序出现在headerdata中,我正试图按照这个顺序显示在我的表中,实际上这对我很有效。我建议使用数组访问表示法,因为它在js行[header]中本机工作