gpt4 book ai didi

javascript - ng-submit 使用工厂函数?

转载 作者:行者123 更新时间:2023-12-03 08:55:12 24 4
gpt4 key购买 nike

我有一个带有 setRoot() 函数的工厂,如下所示,并想在 Controller 中使用它

$scope.testSubmit = testFactory.setRoot();

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

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

最佳答案

您不想立即调用您的函数,所以可以这样做:

$scope.testFactory = testFactory;

并在您的ng-submit中执行以下操作:

ng-submit="testFactory.setRoot()"

这将首先将工厂绑定(bind)到 $scope,这使您可以访问其函数,在本例中是 .setRoot,您只想调用它在实际的 ng-submit 中。将工厂绑定(bind)到 $scope 时不会。

您应该意识到这一点,但是一旦您将 () 放在函数后面,就意味着您执行了它。如果您只是想绑定(bind)某个函数但稍后调用它,您只需执行 $scope.testFactory = testFactory.setRoot ,然后使用 ng-submit="testFactory()" 直接。

您的函数最大的问题是您尝试从工厂内部设置 $rootScope ,这是行不通的。您也不能从工厂内部设置$scope。因此,您必须返回一个值,然后将其绑定(bind)到 Controller 中的 $rootScope$scope

关于javascript - ng-submit 使用工厂函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32530483/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com