Angularjs ng在一个表中重复towice';s<;tr>;冲突

Angularjs ng在一个表中重复towice';s<;tr>;冲突,angularjs,Angularjs,我有下表,需要为两个不同的列重复ng。我尝试了ng repeat start/ng repeat end的新方法,但没有成功: 注意:我有两个具有两个不同连接的不同数据提供程序。我被迫使用这种方法,因为我没有编辑控制器或合并控制器的完全控制权。控制器也是两个不同API的一部分 <table ng-switch-default> <tbody > <tr ng-repeat="name in names" ng-repeat="a in glamors

我有下表,需要为两个不同的列重复ng。我尝试了ng repeat start/ng repeat end的新方法,但没有成功: 注意:我有两个具有两个不同连接的不同数据提供程序。我被迫使用这种方法,因为我没有编辑控制器或合并控制器的完全控制权。控制器也是两个不同API的一部分

<table ng-switch-default>
    <tbody >
    <tr ng-repeat="name in names" ng-repeat="a in glamors">
    <td>{{a.glamor}}</td>
    <td>{{name.first}}</td>
    </tr>
    </tbody>
</table>

{{a.魅力}
{{name.first}}

使用多重ng重复的最佳方法是什么?

在同一结构上使用ng重复两次是不好的做法,因为一个可能会覆盖另一个正在做的事情


我建议创建一个服务,将名称和魅力解析为一个对象,然后将其发送给控制器以显示在视图中。

您不想将一个嵌套在另一个中吗?比如:

<table>
    <tbody>
    <tr ng-repeat="n in names">
        <td>
        <table>
            <tbody>
                <tr ng-repeat="a in glamors">
                    <td>{{a.name}}</td>
                    <td>{{n.name}}</td>
                </tr>
            </tbody>
        </table>
        </td>
    </tr>
    </tbody>
</table>
var a = $http.get("NAMES");
var b = $http.get("GLAMORS");

// Using the promise library, you can have it wait for completion of multiple requests
$q.all([a, b]).then(function(results) {
    var names = results[0].data;
    var glamors = results[1].data;
    var output = [];

    for (var i = 0; i < names.length; i++){
        for(var j = 0; j < glamors.length; j++) {
            output.push({ name: names[i], glamor: glamors[j] });
        }
    }

    $scope.data = output;
});

{{a.name}}
{{n.name}
如果你的造型正确,你就不能真正分辨出它们是分开的桌子

否则,如果需要一个表,则必须合并数据,正如您在另一条注释中提到的,您从两个来源获取数据,这不是问题,解决方案如下:

<table>
    <tbody>
    <tr ng-repeat="n in names">
        <td>
        <table>
            <tbody>
                <tr ng-repeat="a in glamors">
                    <td>{{a.name}}</td>
                    <td>{{n.name}}</td>
                </tr>
            </tbody>
        </table>
        </td>
    </tr>
    </tbody>
</table>
var a = $http.get("NAMES");
var b = $http.get("GLAMORS");

// Using the promise library, you can have it wait for completion of multiple requests
$q.all([a, b]).then(function(results) {
    var names = results[0].data;
    var glamors = results[1].data;
    var output = [];

    for (var i = 0; i < names.length; i++){
        for(var j = 0; j < glamors.length; j++) {
            output.push({ name: names[i], glamor: glamors[j] });
        }
    }

    $scope.data = output;
});
var a=$http.get(“名称”);
var b=$http.get(“魅力”);
//使用promise库,您可以让它等待多个请求的完成
$q.all([a,b])。然后(函数(结果){
变量名称=结果[0]。数据;
var Glamers=结果[1]。数据;
var输出=[];
对于(var i=0;i

小提琴:

假设你的物体是:

$scope.names = [
    {first:'Fahad', last:"Khan"},
    {first:'Fahad2', last:"Khan2"},
    {first:'Fahad3', last:"Khan3"}
];
$scope.glamors = [
    {glamor:'glamour1'},
    {glamor:'glamour2'},
    {glamor:'glamour3'}
];
将魅力与名字合并:

var count = $scope.names.length;
for (var i=0; i<count; i++) {
    $scope.names[i].glamor=$scope.glamors[i].glamor;
}
var count=$scope.names.length;

对于(var i=0;i您正在寻找哪种输出?您可以添加两个对象数组来实现您所寻找的。您可以在controller中合并这两个对象,然后在一个ng Repeat中处理merget对象。我有两个不同的数据提供程序,具有两个不同的连接。我被迫使用此方法。嗯,您可以导入se 2提供程序并粘合它们的值。您的第一个样式设置方法将不起作用,因为它与筛选器关联。我将尝试sec方法。不确定为什么使用筛选器会对任一选项造成问题,但我无法回答不存在的问题。无论哪种方式,这两个选项都有问题: