将指令方法公开给$ scope

时间:2015-10-27 19:08:16

标签: angularjs angularjs-scope

我在使用我的一个Form指令时遇到了一些问题:/我想要一个可以与我在页面中的其他指令进行通信的指令,并且该指令将与控制器通信。 该指令用于公开一些与Form一起使用的功能。

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上公开的其中一种方法时,我得到undefined。例如,如果我用没有设置秒数的$ timeout包围方法,它就可以正常工作。有没有办法让这项工作没有超时?

非常感谢。

1 个答案:

答案 0 :(得分:0)

将这些功能放入服务中,并将其注入您需要的任何地方