使用数组和对象进行ng-repeat

时间:2017-06-29 13:24:38

标签: javascript angularjs arrays html5 angularjs-ng-repeat

我遇到这样的问题:我想在AngularJs中创建一个包含3列的表。对于每一行,两个数据必须来自一个数组&#; elencoTransazioni' (由具有两个属性的元素组成,'代码' desc')一个数据必须来自一个对象,由不同的值对组成(如键值,我想在我的第三列中插入此对象的值)。阵列的长度与对象的数量相同。

我发布了我的代码,但由于我管理了对象&elenscoAbilitazaioni'好像它是一个阵列...

PS 在表格中,如果' elencoAbilitazioni'的价值,第3列有一个绿色圆圈图像。是" S"并且如果是" N"

,则必须是红色圆圈

这是我的HTML

<form class="form-horizontal" name="SintesiFondiForm" novalidate>
        <div class="panel panel-primary">
            <div class="panel-heading"> Elenco Abilitazioni Utente </div>

            <div class="panel-body" uib-collapse="isCollapsed">
                <div id="table-content" class="col-xs-10 col-xs-offset-1">
                    <table class="table table-condensed table-bordered table-striped">
                        <thead>
                            <tr>
                                <th class="i9fontPre text-center">Codice</th>
                                <th class="i9fontPre text-center">Descrizione</th>
                                <th class="i9fontPre text-center">Abilitata per l'Utente</th>

                            </tr>
                        </thead>
                        <tbody>
                            <tr ng-repeat="data in elencoTransazioni">
                                <td class="i9fontPre text-center">{{::data.code}}</td>
                                <td class="i9fontPre text-center">{{::data.desc}}</td>  
                                <td class="text-center"> 
                                    <img ng-src="{{elencoAbilitazioni[$index]==='S' ? '/i9web/mock/circleGreen.png' : '/i9web/mock/circleRed.png'}}">

                            </tr>
                        </tbody>
                    </table>
                </div>      
            </div>
        </div>
    </form>

这是.js

homeModel.getElencoTransazioniTrx().then(function(result) {
            $scope.elencoTransazioni = result.descrizioneTrxList;
        }, function(error) {
            $log.error("Pag4Ctrl -- abilitazioneUtente -- non è stato possibile recuperare l'elenco delle transazioni utente");
        });     

        homeModel.getTrxAbil().then(function(result){
            $scope.elencoAbilitazioni = result.trxAbils;
        }, function(error) {
            $log.error("Pag4Ctrl -- abilitazioneUtente -- non è stato possibile recuperare l'elenco delle abilitazioni utente");
        }); 

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

正如您所说,elencoAbilitazioni不是数组,因此您无法按位置对其进行索引。我建议你在控制器中“准备”你的数组elencoTransazioni,在每个对象中放置elencoAbilitazioni的相应信息,如下所示:

var idx = 0;
angular.forEach($scope.elencoAbilitazioni, function (value, key) {
    $scope.elencoTransazioni[idx++].elencoAbilitazioni = value;
}

因此,您可以直接在代码中使用它,例如:

<img ng-src="{{data.elencoAbilitazioni==='S' ? ...