ng-repeat用于对象和单个对象的数组

时间:2016-02-17 15:36:46

标签: javascript arrays angularjs

我对AngularJS很陌生,我正在阅读一个有时包含单个记录或有时包含多个记录的XML文件。

当我有多个记录时,ng-repeat在迭代对象数组时效果很好但是当我只有一个记录时,它不被视为数组(通过angular.isArray()检查)。

现在我想知道,我应该如何处理这个问题。

ng-repeat code

<div class="row" ng-repeat="lessons in dataSet.module.lesson | partition:1">
                        <div class="col-sm-12" ng-repeat="lesson in lessons">
                            <div class="panel panel-primary">
                                <div class="panel-heading">
                                    <div class="panel-title row">
                                        <a href="" class="col-sm-12" ng-click="expandLesson(lesson);">
                                            <div class="row">
                                                <span class="col-sm-10">

                                                    Section #{{$parent.$index * 1 + $index + 1}}: {{lesson.title.__cdata}}
                                                </span>
                                                <span class="col-sm-2 text-right">
                                                    <i class="fa fa-arrow-right"></i>
                                                </span>
                                            </div>
                                        </a>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>

当我在元素中看到html时,如果在XML文件中单个条目,则会注释掉它。

记录单个对象     Object {meta:Array [11],resource:Array [3],changes:Object,module:Object,title:Object ...}

记录多个对象     [对象,对象,对象,对象,对象,对象]

1 个答案:

答案 0 :(得分:0)

您可以将数据转换为数组,以确保它是一个。

简单而又狡猾的方式:[].concat(yourVar);

更清晰的方式:yourVar = yourVar instanceof Array ? yourVar : [yourVar];