javascript - 在 AngularJs 中使用多个函数

标签 javascript angularjs

我是 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;


    });
});

Controller 在 body 属性中定义如下:

<body ng-controller="DataCtrl">

现在,当我将其他函数放在同一个 app.js 文件中时,它不起作用,任何人都可以帮我解决这个问题,验证代码是这样的:

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

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

});

我唯一需要做的就是让它们像这样工作: 1.加载数据(工作中) 2. 借助第二个代码块实现验证。

最佳答案

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

当浏览器遇到这一行<body ng-controller="DataCtrl">它将查找在 Angular js 中注册的 Controller 的定义。 但就你而言,我猜你注册了 Controller 两次,就像

第一

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');
    }
  };

});

因此,其中一个定义会覆盖另一个定义,具体取决于脚本文件中存在的注册方法的顺序。

因此,为了解决这个问题,您只需要使用一个注册 Controller :-

 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

关于javascript - 在 AngularJs 中使用多个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30950352/

相关文章:

javascript - 将函数的 "call"-function 存储在变量中

javascript - reducer 组合 - 为什么我们需要使用 Object.assign() 重新分配待办事项,为什么不直接调用另一个 reducer 呢?

javascript - "Content-Disposition", "inline;filename="+ fileName 不强制显示 pdf 文件

javascript - 如何访问 Angular UI 网格中已排序的行?

angularjs - $state.go(app.location) 和 $location.path ("app/location"有什么区别?

javascript - OpenLayers:使用来自外部 map 的调用添加时无法关闭弹出窗口

javascript - 正则表达式返回 null

AngularJS 不将数据传递给 JQuery DataTable

javascript - 元素的垂直偏移

javascript - 如果变量为真,如何强制进行下拉选择?