У меня есть форма в 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>
Файл UPDATE 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 и маршрутах и т.д.?). Это не для меня, но для второй проблемы, что он не передает данные. Вы объявили переменную noteData
любом месте вашего контроллера? Если вы установите его в своем контроллере, а затем поймаете функцию отправки, как показано ниже, тогда будут показаны данные:
$scope.noteData = [];
$scope.addNewNote = function(noteData) {
console.log('form submitted');
console.log(noteData);
};
РЕДАКТИРОВАТЬ:
Пожалуйста, проверьте этот пост на SO, чтобы проблема была отправлена дважды. Ваша проблема не дублирует код, который вы указали в своем вопросе, поэтому у вас должно быть что-то еще, что вызывает эту проблему.
<div id="note-detail-content">