javascript - ng-repeat 使用数组和对象

标签 javascript angularjs arrays html angularjs-ng-repeat

我有一个这样的问题:我想在 AngularJs 中创建一个包含 3 列的表。对于每一行,两个数据必须来自数组“elencoTransazioni”(由每个具有两个属性“code”和“desc”的元素组成),一个数据必须来自一个对象,该对象由不同的值对组成(例如键值,我想在第三列中插入该对象的值)。数组的长度与对象对的数量相同。

我发布了我的代码,但它不起作用,因为我管理对象“elencoAbilitazaioni”,就好像它是一个数组一样......

PS 在表格中,如果'elencoAbilitazioni'的值为“S”,则第3列有一个绿色圆圈图像,如果为“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");
        }); 

有人可以帮助我吗?

最佳答案

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

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

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

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

关于javascript - ng-repeat 使用数组和对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44826409/

相关文章:

java - ArrayList 没有复制开销?

python - 将 ctypes int** 转换为 numpy 二维数组

javascript - 在 Google Apps 脚本中解析为 JSON 后无法调用对象的一部分

javascript - onClick 函数在另一个函数中

javascript - 将对象转换为数组 typescript

javascript - 将动态矩形限制为一个

javascript - ionicModal 与用于关闭的 Angular ui 模式事件

c# - 帮助在 C# 中包含字符串数组的哈希表

javascript - 使用 jQuery 无限滚动静态页面

angularjs - 为什么 Angularjs 插值在 IE 11 中失败?