Я начинаю работать над моим первым проектом Angular/Ionic. В принципе, у меня есть форма, которую я прошу пользователя заполнить и отправить. При нажатии кнопки «Отправить» я хочу, чтобы введенная информация была сделана в объект JS и сохранена в API. Но, независимо от того, что вводит пользователь, значения объекта отображаются как неопределенные.Угловая ng-модель, не обновляющая модель
Вот файлы.
appApi.js:
angular.module('myApp').factory('appApi', function() {
var data = [{
"fName": "Subscription",
"desc": "Guitar Learning Session",
"selfExpiryDate": "3/20/2015",
"selfExpiryTime": "18:15"
}];
var getData = function() {
return data;
}
var addData = function(newData) {
data[data.length] = newData;
}
return {
getFavors: getFavors,
addFavor: addFavor
};
});
controller.js:
.controller('formCtrl', ['$scope', '$state', 'appApi', function($scope, $state, appApi) {
$scope.newData = {
"fName": $scope.fNameForm,
"desc": $scope.descForm,
"selfExpiryDate": $scope.selfExpiryDateForm,
"selfExpiryTime": $scope.selfExpiryTimeForm
};
$scope.submit = function() {
appApi.addData($scope.newData);
$state.go('app.home');
}
}])
и form.html:
<ion-view ng-controller = "formCtrl">
<ion-content>
<div class = "list list-inset">
<label class="item item-input">
<input type="text" ng-model = "fNameForm" placeholder="Favor Name" autofocus>
</label>
<label class="item item-input">
<input type="text" ng-model = "descForm" placeholder="Favor Description">
</label>
<label class="item item-input">
<input type="text" ng-model = "selfExpiryDateForm" placeholder="Favor Expiry Date">
</label>
<label class="item item-input">
<input type="text" ng-model = "selfExpiryTimeForm" placeholder="Expiry Time">
</label>
</div>
<button class="button button-block button-positive" ng-click = "submit()">
Submit
</button>
</ion-content>
</ion-view>
Я п Конечно, если я пытаюсь обновить данные динамически, это даже правильно. Может кто-нибудь сказать?
Кроме того, я хочу, чтобы пользователь был перенаправлен на домашнюю страницу после отправки формы. Я правильно сделал это? Мой url изменяется, но нет.
что герметизирующего все внутри функции() делать? Кроме того, когда имеет смысл создавать несколько модулей? – ion20
Я собираюсь отредактировать свой ответ, чтобы включить комментарий dfsq о несогласованности ng-модели с доступом к данным в методе addData. Но прежде чем я это сделаю, пример, показывающий несколько модулей, был связан внизу - поскольку он напрямую не связан с проблемой, я не включил источник. Также анонимная оболочка функции, которую я тихо защищала, (function() {}), является одним из нескольких способов предотвратить другие скрипты, сбивающие все, что я пытаюсь сделать, и некоторую скромную защиту от других javascript. – BradChesney79
Нашел! http://en.wikipedia.org/wiki/Immediately-invoked_function_expression Функция закрытия оболочки называется этим из-за использования специального случая. – BradChesney79