javascript - 在 Angular 中加载页面时提交表单

标签 javascript angularjs forms angularjs-scope onload

如果在 route 指定了搜索词,我想在页面加载时提交搜索表单。问题在于,当 search() 运行时,searchForm 尚未定义。我见过其他人通过将 ng-controller 放在表单元素上来实现此功能,但我在此页面上有多个表单,因此 Controller 必须是表单的父级。

如何确保在调用 search() 时定义表单?

myModule.controller('MyController', ['$scope', '$routeParams',
function($scope, $routeParams){
  $scope.model = {searchTerms: ""};

  $scope.search = function(){
      if($scope.searchForm.$valid){
          ...
      }
  };

  if($routeParams.terms !=""){
      $scope.model.searchTerms = $routeParams.terms;
      $scope.search();
  }
}]);

查看:

<div ng-controller="MyController">
  <form name="searchForm" ng-submit="search()">
      ...
  </form>
  <form name="detailForm" ng-submit="save()">
      ...
  </form>
</div>

最佳答案

这似乎有效:

$scope.$on('$routeChangeSuccess', function () {
    if($routeParams.terms !=""){
        $scope.model.searchTerms = $routeParams.terms;
        $scope.search();
    }
});

关于javascript - 在 Angular 中加载页面时提交表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25332820/

相关文章:

javascript - 即使页面已重新加载,添加的类仍然存在,如何永久应用 jQuery addClass 方法

javascript - React - Forms - 如何处理子组件更新

javascript - 没有 2 个 API 调用的列表页面和详细信息页面的数据

forms - jquery.form.js 无法在 Internet Explorer 9 中运行

forms - 隐藏输入字段的标签

javascript - 追加另一个 Div

javascript - 根据第一个 View 的选择更新其他 View ?

javascript - 在后退按钮上刷新 onsen ui 中的上一页

javascript - 在加载了 ngmap 的 map 上显示信息窗口

php - 如果我的表单使用的是 ajax 提交方法(无需重新加载),我该如何阻止垃圾邮件?