【问题标题】:List all the functions inside angularjs controller列出 angularjs 控制器中的所有函数
【发布时间】:2017-08-08 09:32:50
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: angularjs list methods angular-controller


    【解决方案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()
          })
        }
      }
      

      }

    【讨论】:

    • 感谢布赖恩它的工作。就我而言,我不需要'function': $scope[props[i]].toString() 我只需要名称。无论如何它的工作
    • angular.forEach($scope, function (value, key) { if (typeof (value) == 'function') $scope.operations.push(key); });
    猜你喜欢
    • 1970-01-01
    • 2018-06-18
    • 2014-02-19
    • 2015-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-01
    相关资源
    最近更新 更多