列出angularjs控制器内的所有函数

时间:2017-08-08 09:32:51

标签: angularjs list methods angular-controller

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

现在我需要一种方法来获取角度控制器内定义方法的信息。

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

当我说$scope.getAllMethods时,它应该向我提供在控制器内定义的method1method2的信息。

1 个答案:

答案 0 :(得分:1)

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()
        })
      }
    }
    

    }