Angularjs 向$scope公开指令方法

Angularjs 向$scope公开指令方法,angularjs,angularjs-scope,Angularjs,Angularjs Scope,我的一个表单指令遇到了一些问题:/I我想要一个可以与页面中的其他指令通信的指令,该指令将与控制器通信。 此指令将公开一些用于表单的功能 function Form() { return { restrict: 'A', scope: false, require: 'form', transclude: false, controller: ['$scope','$element','$attrs','$ti

我的一个表单指令遇到了一些问题:/I我想要一个可以与页面中的其他指令通信的指令,该指令将与控制器通信。 此指令将公开一些用于表单的功能

function Form() {
    return {
        restrict: 'A',
        scope: false,
        require: 'form',
        transclude: false,
        controller: ['$scope','$element','$attrs','$timeout', function($scope, $element, $attrs, $timeout) {
            let ctrl = this;

            $scope.obj = {}
            $scope.obj.fun1 = fun1;
            $scope.obj.fun2 = fun2;
            $scope.obj.fun3 = fun3;
            $scope.obj.fun4 =fun4;


            function fun1 (par1, par2){
                // code
            }

            function fun2(){
                // code
            }

            function fun3 (par1, par2, par3, par4){
                // code
            }

            function fun4(){
                // code
            }

        }]
    }
}
但是,当我试图调用我在$scope上公开的其中一个方法时,我得到了未定义的
。例如,如果我在方法周围加上$timeout,并且没有设置秒数,它就可以正常工作。有没有一种方法可以在没有$timeout的情况下实现这一点


非常感谢。

将这些函数放在服务中,并在需要的任何地方注入它们

因为这些函数也可以与HTML一起工作,我不想将它们放在服务中。在这种情况下,您可以在指令中使用包装器调用服务函数这没关系,因为我无法从控制器调用指令的函数。这些函数做什么?您如何使用它们?它们与FormController一起工作,并处理表单及其输入的错误消息