Angular.js ng-submit被触发两次,并且没有获取到表单的值。
Angular.js ng-submit被触发两次,并且没有获取到表单的值。
我在angularjs中有一个表单
问题是ng-submit
触发了两次,而且noteData.title
即使有值也不会读取任何值。
我得到了这个错误
无法读取未定义的属性“title”
我检查了这个问题,但我的代码没有包含两次angular,如果有的话,我该如何检查它?
$scope.addNewNote=function(noteData){ alert(noteData.title); }
index.html链接
更新
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', []); // 用于应用程序的所有控制器。 var appServices = angular.module('starter.services', []);// 用于应用程序的所有服务。 appControllers.controller('AddNotesCtrl',function($scope,$rootScope,$state,$mdToast){ }
Angular.js ng-submit fired twice and didn't get the values from form
最近在使用Angular.js时遇到了一个奇怪的问题,ng-submit事件触发了两次,并且没有获取到表单的值。经过排查,我发现可能是在代码中重复声明了函数或者控制器,例如在html和路由中都声明了控制器等。但是对于第二个问题,即没有获取到表单的值,我发现可能是没有在控制器中声明变量noteData
导致的。如果在控制器中声明了该变量,并且按照以下方式捕获提交事件,就可以打印出表单的值:
$scope.noteData = []; $scope.addNewNote = function(noteData) { console.log('form submitted'); console.log(noteData); };
编辑:
请参考这个帖子中关于表单提交两次的问题。你提供的代码中并没有出现重复提交的问题,所以可能是其他地方引起了这个问题。
谢谢,现在可以读取表单数据了,但是函数执行了两次。
你是否尝试过检查html中是否重复声明了控制器,或者在路由提供者中声明了控制器?或者你能否更新你的问题,提供更多的代码,比如更多的html代码和app.js代码?
我在我的回答中添加了一个有用的链接,关于你第一个问题的表单重复提交的问题。看看这些答案是否有帮助。
我更新了我的问题。