簡體   English   中英

Angular.js ng-submit觸發兩次,但未從表單獲取值

[英]Angular.js ng-submit fired twice and didn't get the values from form

我在angularjs中有一個表單

<form ng-submit="addNewNote(noteData)">
        <button type="submit"  class="md-icon-button ion-nav-button-right md-button md-default-theme" aria-label="Setting" tabindex="0">
            {{noteTxt}}
        </button> 
 <ion-content>
<div id="note-detail-content">
                <md-input-container md-no-float>
                    <input required name="noteTitle" placeholder="Note Title (Required)" ng-model="noteData.title">
                </md-input-container>
                <textarea rows="7" ng-model="noteData.description" maxlength="250"
                          placeholder="Write something here ...."></textarea>
                <span>
                </span>
            </div><!--end content section-->
        </ion-content>
    <!--end note detail section-->
      </form>

問題是ng-submit觸發了兩次,即使存在值, noteData.title也不讀取任何值。 我收到這個錯誤

Cannot read property 'title' of undefined

我已經檢查了這個問題,但是我的代碼沒有兩次包含角度,如果是,我該如何檢查?

$scope.addNewNote=function(noteData){
    alert(noteData.title);
}

index.html鏈接

    <!-- Ionic javascript lib -->
    <script src="lib/ionic/js/ionic.bundle.js"></script>
    <!-- end Ionic javascript lib -->

    <!-- Angular javascript lib -->
    <script src="lib/angular-messages.js"></script>
    <script src="lib/angular-aria.js"></script>
    <script src="lib/angular-material.js"></script>
    <!-- end Angular javascript lib -->

    <!-- Cordova script (this will be a 404 during development) -->
    <script src="lib/ng-cordova.js"></script>
    <script src="cordova.js"></script>

更新 app.js文件

.state('app.addnote', {
                url: "/addnote",
                cache: false,
                views: {
                    'menuContent': {
                        templateUrl: "templates/note/html/note-add.html",
                        controller: 'AddNotesCtrl'
                    }
                }
            })
            .state('app.notelist', {
                url: "/notelist",
                params:{
                    isAnimated:true
                },
                cache: false,
                views: {
                    'menuContent': {
                        templateUrl: "templates/application-storage/local-application-db/html/note-list.html",
                        controller: 'noteListCtrl'
                    }
                }
            }

Controller.js

  var appControllers = angular.module('starter.controllers', []); // Use for all controller of application.
    var appServices = angular.module('starter.services', []);// Use for all service of application.

appControllers.controller('AddNotesCtrl',function($scope,$rootScope,$state,$mdToast){


}

我不知道為什么它會觸發/提交兩次(您確定沒有雙重函數聲明或兩次聲明控制器,例如在html和route等中?)。 它對我來說不是這樣做的,但是對於第二個問題,它不提交數據。 您是否在控制器的任何地方聲明了變量noteData 如果您在控制器中對其進行設置,然后捕獲這樣的Submit函數,則它將顯示數據:

$scope.noteData = [];

$scope.addNewNote = function(noteData) {
  console.log('form submitted');
  console.log(noteData);
};

編輯:

請檢查SO上的此帖子以解決表單提交兩次的問題。 您的問題不是與問題中提供的代碼重復,因此您必須在其他地方導致此問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM