isNumber 或 isObject 不适用于 ng-repeat

isNumber or isObject is not working with ng-repeat

我正在使用 ng-repeat 循环遍历可以是数字或对象的元素。我正在尝试使用条件来显示数字或另一个子 ng-repeat。以下代码示例

 <tr  ng-repeat="(key,val) in vm.data">
   <td>{{key}}</td>
   <td ng-repeat="y in val">
      <span ng-if="angular.isNumber(y)">{{y}}</span>
                                
       <table>
        <tr ng-repeat="(a,b) in y"><td>{{a}}</td><td>{{b}}</td></tr>
      </table>
   </td>
</tr>

我对 angular 很陌生。请帮忙。

试试下面的代码,也请检查 this plunker 的工作示例。

控制器:

$scope.isNumber = angular.isNumber;

模板:

<span ng-if="isNumber(value)">Valid Number</span>

将 angular.isNumber 函数绑定到控制器中的函数。

var app = angular.module("App", []);

app.controller("vmCtrl", function () {
  var vm = this;
  
  vm.isNumber = angular.isNumber;
  
  vm.data = {
    "thing1": [1,2,3,4],
    "thing2": [{
      "something1a": "something1b",
      "something2a": "something2b"
    },
    {
      "somethingElse1a": "somethingElse1b",
      "somethingElse2a": "somethingElse2b"
    }]
  };
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
<table ng-app="App" ng-controller="vmCtrl as vm">
  <tr ng-repeat="(key,val) in vm.data">
     <td>{{key}}</td>
     <td ng-repeat="y in val">
        <span ng-if="vm.isNumber(y)">{{y}}</span>

         <table>
           <tr ng-repeat="(a,b) in y"><td>{{a}}</td><td>{{b}}</td></tr>
         </table>
     </td>
  </tr>
</table>