【问题标题】:Unable to pass form data using Angular.js无法使用 Angular.js 传递表单数据
【发布时间】:2016-10-17 08:06:58
【问题描述】:

我是 Angular.js 的新手,我正在尝试将表单数据发送到服务器,但我收到 angular.js:13424 错误:[ng:areq]。我确实尝试了 Stack Overflow 上的许多可用答案,但我无法找到我的问题的答案。

index.view.html(用于注册)

   <div class="col-md-6 col-md-offset-3" >    
       <input type="text" ng-model="fname" placeholder="Enter the name :"required >Fristname   
      <br> <br>
       button type="button" class="btn btn-success navbar-btn" ng-click=register()>Register </button>
   </div>

index.controller.js

   (function ()
      {
         angular
           .module('app')
           .controller('register.IndexController', function($scope,$http)
        {                
                $scope.register= function()
                {      
                   $http.post('http://localhost:9000/user/register', {firstName : $scope.fname}).success(function(response)
                    {        console.log($scope.fname);
                   })                                                                                       
                }  
        })

         });

index.html

      <!DOCTYPE html>
      <html ng-app="app">
      <head>
      <title>AngularJS JWT Authentication Example & Tutorial</title>
<!-- bootstrap css -->
      <link href="//netdna.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" />
<!-- application css -->
      <link href="app-content/app.css" rel="stylesheet" />
     </head>

<!-- HEADER AND NAVBAR -->
<header>
    <nav class="navbar navbar-default">
        <nav class="cf" ng-include="'nav/index.view.html'" ng-controller="Main.IndexController"></nav>
    </nav>
</header>

【问题讨论】:

  • 您是否在其他地方定义了模块应用程序?如果没有,那么你需要有这个 index.controller.js .module('app', []) 如果你在其他地方定义了它(使用方括号),请确保你只拥有它一次
  • 看起来您使用的控制器名称与您声明的控制器名称不同:Main.IndexController vs register.IndexController...
  • @theTaoOfJS 是的,我已经用方括号定义了它和各自的依赖关系,所以在其他控制器文件中我没有包含该部分,即 []
  • @NeilHibbert 在路由器部分,我为不同的页面定义了控制器,例如: .state('register', { url: '/register', templateUrl: 'register/index.view.html ',控制器:'register.IndexController'
  • 好的,但是“主要”对象在哪里声明?它在某个地方的父 $scope 中吗?因为它看起来不像您的 元素附加到实际控制器...

标签: javascript angularjs mongodb


【解决方案1】:

您在处理请求时似乎使用了错误的控制器标识符。

您已将控制器命名为 register.IndexController,但从 html 中,您正尝试以 Main.IndexController 的形式访问它。

请检查更改 html 控制器标识符是否可以解决您的问题。

如果您打算使用嵌套控制器,您也可以这样做。但无论您使用哪个控制器,都必须正确识别范围。

【讨论】:

  • 我使用了嵌套控制器,它适用于不同的页面,除了这个注册部分。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-06-18
  • 2019-09-26
  • 2015-08-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-27
相关资源
最近更新 更多