Я использую Ionic и AngularFire для создания своего приложения, но у меня проблема:
Мои запросы не записываются в базу данных, когда я нажимаю кнопку "Отправить", вызывается следующая ошибка консоли: TypeError: Невозможно прочитать свойство "push" undefined. Я не знаю, что делать... Помогите мне, пожалуйста. Я в вашем распоряжении для получения дополнительной информации.
Вот мой html-код:
<form ng-submit="AddEvent()">
<label class="item item-input item-stacked-label">
<span class="input-label"><i class="fa fa-pencil"></i> Nom de l'événement</span>
<input type="text" ng-model="events.nameid">
</label>
<label class="item item-input item-stacked-label">
<span class="input-label"><i class="icon ion-ios-information"></i> Description</span>
<br><textarea ng-model="events.descriptionid"></textarea>
</label>
<label class="item item-input item-stacked-label">
<span class="input-label"><i class="fa fa-location-arrow"></i> Adresse</span>
<input type="text" ng-model="events.addressid">
</label>
<button class="button" type="submit" id="success-btn-create"><i class="fa fa-arrow-right"></i></button></form>
Мой контроллер JS:
myApp.controller('Step1Ctrl', ['$scope', 'Events', 'Auth', '$rootScope', '$state', function($scope, $Events, Auth, $rootScope, $state) {
$scope.events = Events;
var Events = {fbRef: "https://myApp.firebaseio.com/Events"};
$scope.AddEvent = function() {
var eventsRef = eventsRef.push();
$scope.events.push({
"nameid": nameid,
"descriptionid": descriptionid,
"addressid": addressid,
});
}
$scope.auth = Auth;
// any time auth status updates, add the user data to scope
$scope.auth.$onAuth(function(authData) {
$scope.authData = authData;
});
$scope.create = function() {
$state.go('tabstep1');
};
$scope.close = function() {
$state.go('tabdash');
};
}])
Моя служба JS:
angular.module('starter.services', ['ngCordova','firebase'])
myApp.factory("Events", ["$firebaseArray", function($firebaseArray) {
var eventsRef = new Firebase("https://myApp.firebaseio.com/Events");
return $firebaseArray(eventsRef);
}]);
Ваши переменные eventsRef
не определены при вызове eventsRef.push()
. Также вы ничего не делаете в вызове push()
.
Пытаться:
var eventsRef = [];
eventsRef.push(somethingToAddToEventsRef);
push()
в массив, у меня было бы лучшее представление о том, где сделать вызов.