非数组对象上的ng-repeat

che*_*zer 3 javascript arrays angularjs angularjs-ng-repeat angular-ng-if

我知道ng-repeat只适用于数组.

我的问题是当我不知道从服务器获取的对象是数组还是仅对象时.
我需要动态确定它是否是数组或对象,并且只有当它的数组使用ng-repeat时才需要.

我的问题是什么是使用ng-repeat with condition的最好方法 - 只有当对象是一个数组时?

我试着用这种方式解决问题:

 <div ng-if="Array.isArray(myObj)"ng-repeat="item in myObj">
      <do-some-stuff item='item'></do-some-stuff>
 </div>
 <do-some-stuff ng-if="!Array.isArray(myObj)" item='myObj'></do-some-stuff>
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

Muk*_*mar 6

ng-repeat priority为1000,ng-if priority为600.所以ng-repeat先执行,然后执行ng-if.这就是你的代码不工作的原因.使用此代码:

<div ng-if="Array.isArray(myObj)">
      <div ng-repeat="item in myObj">
          <do-some-stuff item='item'></do-some-stuff>
      </div>
 </div>
 <do-some-stuff ng-if="!Array.isArray(myObj)" item='myObj'></do-some-stuff>
Run Code Online (Sandbox Code Playgroud)