列出 angularjs controller 中的所有函数

List all the functions inside angularjs controller

我有一个 angularjs 控制器,我在里面定义了 method1 和 method2。

现在我需要一种方法来获取 angular 控制器中已定义方法的信息。

我尝试使用 $scope 变量它让我可以访问这些函数,但我在这里需要的是将所有方法定义为列表(或类似的东西)。

当我说 $scope.getAllMethods 时,它应该给我控制器内部定义的 method1method2 的信息。

this怎么样?

  1. 获取 $scope 的所有属性。
  2. 测试是否为函数类型。
  3. 如果是,推送到一个数组并将它们字符串化。

    $scope.methods = [];
    $scope.getAllMethods = function() {
    
    console.log($scope);
    
    var props = Object.getOwnPropertyNames($scope);
    
    for (var i = 0; i < props.length; i++) {
      if (typeof($scope[props[i]]) === 'function') {
        $scope.methods.push({
          'name': props[i],
          'function': $scope[props[i]].toString()
        })
      }
    }
    

    }