ng-submit使用工厂功能?

时间:2015-09-11 19:04:49

标签: javascript angularjs factory

我的工厂的功能setRoot()如下所示,并希望在控制器中使用它

$scope.testSubmit = testFactory.setRoot();

但是当打开html时,有ng-submit =" testSubmit()"我只是在输入任何内容之前执行工厂函数;)那么我如何在ng-submit中使用工厂函数?

.factory('testFactory', function($rootScope){
        return {           
            setRoot: function(){
                $rootScope.root = 'inside testFactory';
            }
        }
    })

1 个答案:

答案 0 :(得分:1)

您不想立即调用您的函数,所以请改为:

$scope.testFactory = testFactory;

在你的ng-submit做:

ng-submit="testFactory.setRoot()"

这将首先将工厂绑定到$scope,这使您可以访问其功能,在这种情况下.setRoot,您只想在实际ng-submit中调用。不是将工厂绑定到$scope

你应该知道这一点,但只要你将()放在一个函数后就意味着你执行它。如果您只想绑定某个功能但稍后再调用它,则可以$scope.testFactory = testFactory.setRoot然后直接使用ng-submit="testFactory()"

你的功能最大的问题是你试图在工厂内设置$rootScope,这是行不通的。您也无法在工厂内设置$scope。因此,您必须返回一个值,然后将其绑定到控制器中的$rootScope$scope