【发布时间】:2017-08-13 16:20:46
【问题描述】:
我想在完成一些用户输入的操作后清除表单。我知道如何从控制器执行此操作。例如,我可以运行以下函数:
$scope.clearForm = function () {
$scope.addOrEditForm.$setPristine();
$scope.firstName = "";
$scope.secondName = "";
$scope.position = "";
};
这行得通。但我需要从位于 AngularJS 服务中的另一个函数调用此函数。我怎么能从那里调用它?或者我如何在服务中定义clearForm 函数并访问所有这些表单变量,如$scope.firstName、$scope.secondName、$scope.position?感谢您的帮助!
【问题讨论】:
-
将 $scope 作为参数传递给服务并从那里清除它?您可能希望将所有这些属性(firstname、secondName..)放入范围内的一个对象中,然后仅将该对象传递给您的服务,而不是所有 $scope
-
我认为最好的方法是创建一个服务函数,然后可以在服务和控制器中使用它,然后您可以将所需的所有变量从控制器传递给服务。或者按照 Gonzalo 的建议,传递 $scope。我只是发现混合 $scopes 会导致很多问题。
-
我怎样才能将变量传递给服务?
-
例如我有
proposeNewsCtrl控制器和postNewsFactory服务。angular.module('twitterApiApp').factory('postNewsFactory', ['$http', 'publicationsFactory', 'channelsFactory', function($http, publicationsFactory, channelsFactory) {}如何将这些变量或1个带有变量的对象从控制器注入到服务中?
标签: angularjs forms angularjs-scope