Javascript 在AngularJs中使用多个函数

Javascript 在AngularJs中使用多个函数,javascript,angularjs,Javascript,Angularjs,我不熟悉angular,使用一个函数使用$http加载数据,这对我来说很有用。之后,我决定做一些表单验证,看看它的行为。我可以单独完成,但对于如何将代码与上面的代码合并以使这两个函数都能正常工作,我有点困惑。 守则如下: var App = angular.module('App', []); App.controller('DataCtrl', function($scope, $http) { $http.get('any url or file') .then(fun

我不熟悉angular,使用一个函数使用$http加载数据,这对我来说很有用。之后,我决定做一些表单验证,看看它的行为。我可以单独完成,但对于如何将代码与上面的代码合并以使这两个函数都能正常工作,我有点困惑。 守则如下:

    var App = angular.module('App', []);

App.controller('DataCtrl', function($scope, $http) {
  $http.get('any url or file')
    .then(function(result) {

      $scope.data = result.data;


    });
});
控制器在body属性中定义如下:

<body ng-controller="DataCtrl">
    App.controller('DataCtrl', function($scope) {
      $scope.submitForm = function(isValid) {

    if (isValid) {
      alert('submitting data');
    }
  };

});
我要做的唯一一件事就是让它们像这样工作: 1.负载数据(工作) 2.在第二个代码块的帮助下实现验证。

只需像下面那样使用它

 var App = angular.module('App', []);

 App.controller('DataCtrl', function($scope, $http) {
     $http.get('any url or file').then(function(result) {

         $scope.data = result.data;


     });

      $scope.submitForm = function(isValid) {

          if (isValid) {
              alert('submitting data');
           }
      };
 });

试着解释一下它是如何工作的:)

当浏览器遇到这一行时,
它将查找注册到angular js的控制器的定义。 但在你的情况下,我猜你是注册控制器的两倍

首先

App.controller('DataCtrl', function($scope, $http) {
  $http.get('any url or file')
    .then(function(result) {

      $scope.data = result.data;


    });
});

 App.controller('DataCtrl', function($scope) {
      $scope.submitForm = function(isValid) {

    if (isValid) {
      alert('submitting data');
    }
  };

});
因此,根据脚本文件中注册方法的顺序,其中一个定义将覆盖另一个定义

因此,要克服这一问题,您只需使用一个已注册的控制器:-

 App.controller('DataCtrl', function($scope, $http) {
     $http.get('any url or file').then(function(result) {

         $scope.data = result.data;


     });

      $scope.submitForm = function(isValid) {

          if (isValid) {
              alert('submitting data');
           }
      };
 });

代码信用:-S Vinesh

你说它不工作是什么意思?函数没有被调用吗?谢谢,这就是我需要的。实际上你只需要使用第三个块。第一和第二块是不必要的。所以你只有一个控制器。希望你能理解!。我答对了吗?这就是你要问的吗?嘿@S Vinesh这就是我对OP说的他/她必须只使用控制器的一个定义,而不是两个。