无法调用控制器构造和提交功能 [英] Unable to invoke controller constructor and submit function

查看:191
本文介绍了无法调用控制器构造和提交功能的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下的code和我一个无法找出为什么我的控制器是没有得到叫什么名字? -

\r
\r

index.html的 - \r
<!DOCTYPE HTML>\r
< HTML和GT;\r
  < HEAD>\r
    <间的charset =UTF-8>\r
    <标题>< /标题>\r
    < META NAME =说明内容=>\r
    其中p META NAME =视口CONTENT =WIDTH =设备宽度,初始规模= 1\r
    <! - 广场的favicon.ico和苹果触摸的icon.png在根目录下 - >\r
    < - 编译:()CSS样式/ vendor.css - >\r
    < - 鲍尔:CSS - >\r
    <链接rel =stylesheet属性HREF =bower_components /引导/距离/ CSS / bootstrap.css/>\r
    &所述;! - endbower - >\r
    &所述;! - endbuild - >\r
    < - 编译:CSS(.TMP)样式/的main.css - >\r
    <链接rel =stylesheet属性HREF =风格/的main.css>\r
    &所述;! - endbuild - >\r
  < /头>\r
  <机身NG-应用=对myApp>\r
    \r
\r
    < D​​IV CLASS =容器>\r
  < D​​IV CLASS =行>\r
 \r
      < D​​IV CLASS =COL-XS-12>\r
          <! - FORM ============ - >\r
        \r
          <表格名称=窗体NG提交=main.submitForm()的novalidate>\r
\r
              <! - USERNAME - >\r
              < D​​IV CLASS =表单组NG-CLASS ={'有错误:!userForm.username $无效和放大器;&安培; userForm.username $质朴}>\r
                  <标签>用户名和LT; /标签>\r
                  <输入类型=文本名称=用户名级=表格控NG模型=user.usernameNG-MINLENGTH个=3NG-MAXLENGTH =8>\r
                  < p NG秀=$ userForm.username error.minlength。阶级=求助块方式>用户名太短< / P>\r
                  < p NG秀=$ userForm.username error.maxlength。阶级=求助块方式>用户名太长< / P>\r
              < / DIV>\r
              \r
              <! - 密码 - >\r
              < D​​IV CLASS =表单组NG-CLASS ={'有错误:!userForm.pwd $无效和放大器;&安培; userForm.pwd $质朴}>\r
                  <标签>密码和LT; /标签>\r
                  <输入类型=密码NAME =密码级=表格控NG模型=user.pwd>\r
                  < p NG秀=$ userForm.pwd无效和放大器;&安培;!userForm.pwd $质朴。阶级=求助块方式>输入有效密码和LT; / P>\r
              < / DIV>\r
              \r
              <按钮式=提交级=BTN BTN-主要COL-XS-12NG-禁用=&GT窗体$无效。;​​提交< /按钮>\r
              \r
          < /表及GT;\r
\r
      < / DIV>\r
\r
  < / DIV>\r
< / DIV>\r
\r
    < D​​IV CLASS =页脚foot​​ertxt>\r
      < D​​IV CLASS =容器>\r
        &所述p为H.; @Copyright XYZ&下; / P>\r
      < / DIV> < / DIV>\r
\r
\r
    \r
    <脚本类型=文/ JavaScript的SRC =cordova.js>< / SCRIPT>\r
\r
    < - 编译:()JS脚本/ vendor.js - >\r
    < - 鲍尔:JS - >\r
    <脚本SRC =bower_components / jQuery的/距离/ jquery.js和>< / SCRIPT>\r
    &所述; SCRIPT SRC =bower_components /角度/ angular.js>&下; /脚本>\r
    <脚本SRC =bower_components /引导/距离/ JS / bootstrap.js>< / SCRIPT>\r
    &所述; SCRIPT SRC =bower_components /角动画/角animate.js>&下; /脚本>\r
    <脚本SRC =bower_components /角饼干/角cookies.js>< / SCRIPT>\r
    <脚本SRC =bower_components /角资源/角resource.js>< / SCRIPT>\r
    <脚本SRC =bower_components /角路由/角route.js>< / SCRIPT>\r
    &所述; SCRIPT SRC =bower_components /角的sanitize /角sanitize.js>&下; /脚本>\r
    <脚本SRC =bower_components /角接触/角touch.js>< / SCRIPT>\r
    &所述;! - endbower - >\r
    &所述;! - endbuild - >\r
\r
        < - 编译:JS({TMP,应用})脚本/ scripts.js中 - >\r
        <脚本SRC =脚本/ app.js>< / SCRIPT>\r
        <脚本SRC =脚本/控制器/ main.js>< / SCRIPT>\r
        <脚本SRC =脚本/控制器/ about.js>< / SCRIPT>\r
        <脚本SRC =脚本/服务/ cordova.js>< / SCRIPT>\r
        &所述;! - endbuild - >\r
< /身体GT;\r
< / HTML>

\r

\r
\r

\r
\r

main.js:\r
\r
使用严格的;\r
\r
\r
angular.module('对myApp')\r
  .controller('MainCtrl',函数($范围,科尔多瓦){\r
    的console.log(你好......)\r
    this.awesomeThings = [\r
      HTML5样板,\r
      AngularJS',\r
      因果报应\r
    ];\r
    cordova.ready.then(函数(){\r
        警报('科尔多瓦就绪');\r
    });\r
\r
    //函数提交表单发生所有验证后,\r
    $ scope.submitForm =功能(){\r
\r
        //检查,以确保形式是完全有效\r
        如果($ scope.userForm $有效){\r
            警报('我们的形式是惊人');\r
            的console.log(对于提交..)\r
        }\r
\r
    };\r
});

\r

\r
\r

app.js:

\r
\r

/ **\r
 * @ngdoc概述\r
 * @name angularCordovaTickrv01App\r
 * @description\r
 *#对myApp\r
 *\r
 *应用程序的主要模块。\r
 * /\r
角\r
  .module('对myApp',[\r
    ngAnimate',\r
    ngCookies',\r
    ngResource',\r
    ngRoute',\r
    ngSanitize',\r
    ngTouch\r
  ])\r
  的.config(函数($ routeProvider){\r
    $ routeProvider\r
      。什么时候('/', {\r
        templateUrl:意见/ main.html中,\r
        控制器:'MainCtrl',\r
        controllerAs:'主'\r
      })\r
      。除此以外({\r
        redirectTo:'/'\r
      });\r
  });

\r

\r
\r


解决方案

修改你的 NG-提交,你不必把主.submitForm()

 <表格名称=窗体NG提交=submitForm()的novalidate>

此外,你必须在你的科尔多瓦注射控制器错误。

看一看这Plunker

I have the following code and I an unable to find out why my controller is not getting called? -

index.html -
<!doctype html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
    <meta name="description" content="">
    <meta name="viewport" content="width=device-width, initial-scale=1"
    <!-- Place favicon.ico and apple-touch-icon.png in the root directory -->
    <!-- build:css(.) styles/vendor.css -->
    <!-- bower:css -->
    <link rel="stylesheet" href="bower_components/bootstrap/dist/css/bootstrap.css" />
    <!-- endbower -->
    <!-- endbuild -->
    <!-- build:css(.tmp) styles/main.css -->
    <link rel="stylesheet" href="styles/main.css">
    <!-- endbuild -->
  </head>
  <body ng-app="myApp">
    

    <div class="container">
  <div class="row">  
 
      <div class="col-xs-12">
          <!-- FORM ============ -->
        
          <form name="userForm" ng-submit="main.submitForm()" novalidate>

              <!-- USERNAME -->
              <div class="form-group" ng-class="{'has-error' : userForm.username.$invalid && !userForm.username.$pristine }">
                  <label>Username</label>
                  <input type="text" name="username" class="form-control" ng-model="user.username" ng-minlength="3" ng-maxlength="8">
                  <p ng-show="userForm.username.$error.minlength" class="help-block">Username is too short.</p>
                  <p ng-show="userForm.username.$error.maxlength" class="help-block">Username is too long.</p>
              </div>
              
              <!-- Password -->
              <div class="form-group" ng-class="{ 'has-error' : userForm.pwd.$invalid && !userForm.pwd.$pristine }">
                  <label>Password</label>
                  <input type="password" name="password" class="form-control" ng-model="user.pwd">
                  <p ng-show="userForm.pwd.$invalid && !userForm.pwd.$pristine" class="help-block">Enter a valid Password.</p>
              </div>
              
              <button type="submit" class="btn btn-primary col-xs-12" ng-disabled="userForm.$invalid">Submit</button>
              
          </form>

      </div>

  </div>
</div>

    <div class="footer footertxt">
      <div class="container">
        <p>@Copyright xyz</p>
      </div>        </div>


    
    <script type="text/javascript" src="cordova.js"></script>

    <!-- build:js(.) scripts/vendor.js -->
    <!-- bower:js -->
    <script src="bower_components/jquery/dist/jquery.js"></script>
    <script src="bower_components/angular/angular.js"></script>
    <script src="bower_components/bootstrap/dist/js/bootstrap.js"></script>
    <script src="bower_components/angular-animate/angular-animate.js"></script>
    <script src="bower_components/angular-cookies/angular-cookies.js"></script>
    <script src="bower_components/angular-resource/angular-resource.js"></script>
    <script src="bower_components/angular-route/angular-route.js"></script>
    <script src="bower_components/angular-sanitize/angular-sanitize.js"></script>
    <script src="bower_components/angular-touch/angular-touch.js"></script>
    <!-- endbower -->
    <!-- endbuild -->

        <!-- build:js({.tmp,app}) scripts/scripts.js -->
        <script src="scripts/app.js"></script>
        <script src="scripts/controllers/main.js"></script>
        <script src="scripts/controllers/about.js"></script>
        <script src="scripts/services/cordova.js"></script>
        <!-- endbuild -->
</body>
</html>

main.js:

'use strict';


angular.module('myApp')
  .controller('MainCtrl', function ($scope, cordova) {
    console.log("Hello...")
    this.awesomeThings = [
      'HTML5 Boilerplate',
      'AngularJS',
      'Karma'
    ];
    cordova.ready.then(function () {
        alert('Cordova is ready');
    });

    // function to submit the form after all validation has occurred            
    $scope.submitForm = function() {

        // check to make sure the form is completely valid
        if ($scope.userForm.$valid) {
            alert('our form is amazing');
            console.log("For submitted..")
        }

    };
});

app.js:

/**
 * @ngdoc overview
 * @name angularCordovaTickrv01App
 * @description
 * # myApp
 *
 * Main module of the application.
 */
angular
  .module('myApp', [
    'ngAnimate',
    'ngCookies',
    'ngResource',
    'ngRoute',
    'ngSanitize',
    'ngTouch'
  ])
  .config(function ($routeProvider) {
    $routeProvider
      .when('/', {
        templateUrl: 'views/main.html',
        controller: 'MainCtrl',
        controllerAs: 'main'
      })
      .otherwise({
        redirectTo: '/'
      });
  });

解决方案

Modify your ng-submit, you don't have to put main.submitForm()

<form name="userForm" ng-submit="submitForm()" novalidate>

Also, you have an error in your controller with your cordova injection.

Have a look at this Plunker

这篇关于无法调用控制器构造和提交功能的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆