2016-04-18 20 views
0

ng-submit-submitForm()関数を呼び出そうとすると、関数を呼び出すことができず、何もしません。どうすれば解決できますか?フォームとコードバーの関数が呼び出されない

(function() { 
 
    'use strict'; 
 

 
    /** 
 
    * @ngdoc function 
 
    * @name app.controller:MainCtrl 
 
    * @description 
 
    * # MainCtrl 
 
    * Controller of the app 
 
    */ 
 
    angular.module('app') 
 
    .controller('MainCtrl', ['$scope', 'cordova', function ($scope, cordova) { 
 
     console.log("Hello..."); 
 
     cordova.ready.then(function() { 
 
      alert('Cordova is ready'); 
 
      console.log("Ready...."); 
 
     }); 
 
     // function to submit the form after all validation has occurred    
 
     this.submitForm = function() { 
 
     console.log("Submit form..."); 
 
     // check to make sure the form is completely valid 
 
     if ($scope.userForm.$valid) { 
 
      alert('our form is amazing'); 
 
      console.log("For submitted..") 
 
     } 
 
     }; 
 
    }]); 
 
    
 
})();

答えて

0

注:私はcordova.readyが動作していると推測しますが、アプリケーションがエミュレータまたは物理デバイスのいずれかで実行されている場合にのみ解決されます。

this.submitFormメソッドの中にコードバーが用意されているかどうかを確認することをおすすめします。

(function() { 
    'use strict'; 

    angular.module('app') 
    .controller('MainCtrl', ['$scope', 'cordova', function ($scope, cordova) { 
     console.log("Hello..."); 

     // function to submit the form after all validation has occurred    
     this.submitForm = function() { 
     console.log("Submit form..."); 
     cordova.ready.then(function() { 
      alert('Cordova is ready'); 
      console.log("Ready...."); 
      validateAndSendForm(); 
     }, function() { 
      console.log('It is not cordova, decide to send or not the form.'); 
      // validateAndSendForm(); 
     }); 
     }; 
     function validateAndSendForm() { 
     // check to make sure the form is completely valid 
     if ($scope.userForm.$valid) { 
      alert('our form is amazing'); 
      console.log("For submitted..") 
     } 
     } 
    }]); 

})(); 

あなたのhtmlのようなものに見えるはずです。

<div ng-controller="MainCtrl as main"> 
    <form method="post" ng-submit="main.submitForm()"> 
    <!-- More fields here --> 
    <button type="submit">Submit</button> 
    </form> 
</div> 
+0

Iはとしてapp.jsでそれを持っている - (関数(){ 'は厳密使用'; 角度.module( 'アプリ'、[ 'ngRoute'、 'ngCookies']) の.config(設定); 。 設定$ [ '$ locationProvider'、 '$ routeProvider'] =注入; 機能の設定($ routeProvider、$ locationProvider){ $ routeProvider .when( '/'、{ コントローラ 'MainCtrl' テンプレートURL: 'views/main.html'、 コントローラー: 'メイン' } など。({redirectTo: '/'})); } })(); – Smitha

+0

素晴らしい@Smitha、これは: 'ng-controller =" MainCtrl as main "'は必要ありません。 – slackmart

0

あなたは構文「などのコントローラ」を使用している場合、私は本当に見ることができないが、それ以外、あなたはスコープにsubmitForm機能を追加する必要があります。

$ scope.submitForm = function ...

+0

を私はapp.jsでそれを持っている - (関数(){ '厳格な使用';角度.module( 'アプリ'、[ 'ngRoute ($ routeProvider、$ locationProvider){$ routeProvider、$ locationProvider、$ locationProvider、$ locationProvider、$ locationProvider、$ locationProvider、コントローラー: 'MainCtrl'、templateUrl: 'views/main.html'、controllerAs: 'main'})その他({redirectTo: '/'});}})(); – Smitha

関連する問題