Перечислите все функции внутри контроллера angularjs

У меня есть контроллер angularjs, внутри которого я определил method1 и method2.

Теперь мне нужен способ получить информацию об определенном методе внутри углового контроллера.

Я попытался с переменной $scope. Это дает мне доступ к функциям, но здесь мне нужно получить все методы, определенные как list(или что-то подобное).

когда я сказал $scope.getAllMethods это должно дать мне информацию о method1 а также method2 который определяется внутри контроллера.

1 ответ

Решение

Как это?

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

    }

Другие вопросы по тегам