【问题标题】:Angularjs controller is showing errorAngularjs控制器显示错误
【发布时间】:2015-01-20 19:20:34
【问题描述】:

我正在使用 monaca ide 进行开发。

我正在尝试使用 angularjs 将数据从 html 发布到 php 页面,这给了我错误 未捕获的错误:[ng:areq] 参数 'joinctrl' 不是函数,未定义我对 angularjs 一无所知,请帮助我,谢谢您的帮助。

html

index.html

<!DOCTYPE HTML>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, height=device-height, initial-scale=1, maximum-scale=1, user-scalable=no">
    <script src="components/loader.js"></script>
    <script src="js/script.js"></script>
    <link rel="stylesheet" href="components/loader.css">
    <link rel="stylesheet" href="css/style.css">
    <script>
        ons.bootstrap();
        ons.disableAutoStatusBarFill();  // (Monaca enables StatusBar plugin by default)
    </script>
</head>
<body>
    <ons-navigator title="Navigator" var="myNavigator" page="page1.html">

    </ons-navigator> 
</body>
</html>

page2.html

<ons-page style="background:#5C2D50">
<div class="modal">
    <div class="modal__content" ng-app=joinus ng-controller="joinctrl">
        <form>
        <h1>Join Us</h1>
        <input type="email" placeholder="Email" ng-model="email"><br />
        <input type="password"  placeholder="Password" ng-model="password"><br />
        <input type="password"  placeholder="Confirm Password" ng-model="cpassword"><br />
        <input type="submit" value="Create" class="creat" ng-submit="create()">
        </form>
    </div>
</div>
<div id="gos" onclick="myNavigator.popPage()"><span class="fa fa-chevron-left" id="bk"></span></div>
</ons-page>

script.js

var app = angular.module('joinus', ['onsen']);

app.controller('joinctrl', function($scope, $http){
   $scope.create=function(){
       var request=$http({
           method:"post",
           url:"http://www.elunika.com/joinus.php",
           data:{
               email:$scope.email,
               password:$scope.password,
               cpassword:$scope.cpassword
           },
           headers:{'Content-Type':'application/x-www-form-urlencoded'}
       });
   request.success(function(data){
       myNavigator.popPage();
   });
   request.error(function(data){
       alert("Error While Proccessing");
   })
   }
});

请让我知道我正在做的错误。

  1. 如果我使用 angularjs,请告诉我 &lt;form&gt; 是否需要在 html 中使用。
  2. 如果我可以像在 jquery 中一样使用alert,请告诉我。

再次感谢您的帮助。

【问题讨论】:

  • 您必须删除 ng-click on submit 并将其添加为 ng-submit="create()"

标签: javascript angularjs onsen-ui monaca


【解决方案1】:

您的index.html 文件中是否包含onsen 模块依赖项?

这是您的代码的working version,不包括onsen

可以在&lt;html&gt;&lt;body&gt; 标签处使用单个ng-app。确保在整个应用中使用单个 ng-app 属性。

至于:

  1. 你可以这样使用&lt;form&gt;

  2. 你可以。

:)

PS:我提供的 Plunker 示例没有遇到areq 的问题,正如您在浏览器的控制台中看到的那样。

【讨论】:

  • 如果我不使用onsen,它会向我显示相同的错误,但由于我正在使用 onsen ui,因此包含了温泉
  • 您是否在html 文件中的其他任何地方提及控制器或应用程序名称?
  • ng-app="joinus"更改为ng-app=joinus
  • 一般来说,这里有更多线索:stackoverflow.com/questions/17289236/…
  • 这里有一个检查序列:stackoverflow.com/questions/26797756/…
【解决方案2】:
  1. 使用 AngularJS 时确实需要使用表单。这与其他框架的方式相同。您在提交按钮上添加 ng-click 的方式是有效的。
  2. AngularJS 只是一个 JavaScript 框架。您使用警报的方式是有效的。

请问您在什么时候/采取什么行动未捕获的错误:[ng:areq] 参数 'joinctrl' 不是函数,未定义

【讨论】:

  • @nikolay 对此进行了回答,它在演示中运行良好。但是当我在 monaca 调试器中使用它时,它会显示这样的错误
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-03-03
  • 1970-01-01
  • 1970-01-01
  • 2013-06-06
  • 1970-01-01
  • 1970-01-01
  • 2015-12-26
相关资源
最近更新 更多