Javascript angularFire无法向firebase添加数据
我正在使用angularFire并尝试使用$add将表单中的数据保存到firebase。任何帮助都将不胜感激。控制台记录所有工作,我能够在控制台中检索数据。对不起,所有的代码。。。我想确保我提供了所需的所有材料 app.js:Javascript angularFire无法向firebase添加数据,javascript,angularjs,firebase,angularfire,Javascript,Angularjs,Firebase,Angularfire,我正在使用angularFire并尝试使用$add将表单中的数据保存到firebase。任何帮助都将不胜感激。控制台记录所有工作,我能够在控制台中检索数据。对不起,所有的代码。。。我想确保我提供了所需的所有材料 app.js: var creativeBillingApp = angular.module('creativeBillingApp', ['ngRoute', 'firebase']); creativeBillingApp.constant('FIREBASE_U
var creativeBillingApp = angular.module('creativeBillingApp', ['ngRoute', 'firebase']);
creativeBillingApp.constant('FIREBASE_URI', "https://XXXX.firebaseIO.com/");
creativeBillingApp.controller('MainCtrl', ['$scope', 'groupsService', function( $scope, groupsService, $firebase ) {
console.log('Works')
$scope.newGroup = {
name: '',
status: ''
};
$scope.addGroup = function(newGroup){
console.log(newGroup);
groupsService.addGroup();
$scope.newGroup = {
name: '',
status: ''
};
};
$scope.updateGroup = function (id) {
groupsService.updateGroup(id);
};
$scope.removeGroup = function(id) {
groupsService.removeGroup(id);
};
}]);
creativeBillingApp.factory('groupsService', ['$firebase', 'FIREBASE_URI',
function ($firebase, FIREBASE_URI) {
'use strict';
var ref = new Firebase(FIREBASE_URI);
return $firebase(ref).$asArray();
var groups = $firebase(ref).$asArray();
var getGroups = function(){
return groups;
};
var addGroup = function (newGroup) {
console.log(newGroup)
groups.$add(newGroup);
};
var updateGroup = function (id){
groups.$save(id);
};
var removeGroup = function (id) {
groups.$remove(id);
};
return {
getGroups: getGroups,
addGroup: addGroup,
updateGroup: updateGroup,
removeGroup: removeGroup,
}
}]);
index.html:
<form role="form" ng-submit="addGroup(newGroup)">
<div class="form-group">
<label for="groupName">Group Name</label>
<input type="text" class="form-control" id="groupName" ng-model="newGroup.name">
</div>
<div class="form-group">
<label for="groupStatus">Group Status</label>
<select class="form-control" ng-model="newGroup.status">
<option value="inactive">Inactive</option>
<option value="active">Active</option>
</select>
</div>
<button type="submit" class="btn btn-default">Submit</button>
</form>
app.js第35行引用了groupsService.addGroup();从上面给出的app.js代码中。首先,在创建
$FirebaseArray
后,您将返回您的服务。在此之后,您还将创建另一个$FirebaseArray
return $firebase(ref).$asArray();
删除该返回语句。这会导致您的服务提前返回,并且附加的任何方法都不会应用于您的服务
在groupService.addGroup()
中,您正在调用push,它不是$asArray
上的函数。您需要调用$add()
。newGroup
参数也没有在控制器中传递
$.push
方法可在$firebase
绑定的基础上使用。使用$FirebaseArray
时,$add
方法将新记录推送到Firebase中
var addGroup = function (newGroup) {
console.log(newGroup)
groups.$add(newGroup);
};
然后在控制器中,您只需调用:
$scope.addGroup = function(newGroup){
groupsService.addGroup(newGroup);
$scope.newGroup = {
name: '',
status: ''
};
};
首先,在创建
$FirebaseArray
后,您将返回您的服务。在此之后,您还将创建另一个$FirebaseArray
return $firebase(ref).$asArray();
删除该返回语句。这会导致您的服务提前返回,并且附加的任何方法都不会应用于您的服务
在groupService.addGroup()
中,您正在调用push,它不是$asArray
上的函数。您需要调用$add()
。newGroup
参数也没有在控制器中传递
$.push
方法可在$firebase
绑定的基础上使用。使用$FirebaseArray
时,$add
方法将新记录推送到Firebase中
var addGroup = function (newGroup) {
console.log(newGroup)
groups.$add(newGroup);
};
然后在控制器中,您只需调用:
$scope.addGroup = function(newGroup){
groupsService.addGroup(newGroup);
$scope.newGroup = {
name: '',
status: ''
};
};
谢谢你的回复!我尝试了$add,但它在控制台中给了我相同的错误。您正在从最顶端的服务返回。拆下那条线。我已经更新了答案。有太多可能是错误的。你能在JSBin或Plnker中发布一个例子吗?它不起作用。您需要设置ng应用程序和控制器指令。您还需要包括Firebase、AngularFire和AngularFire的脚本引用。我添加了这些,并制作了一个新的plunker。问题与以前相同,您没有将newGroup传递给
groupsService.addGroup()
函数。谢谢你的回复!我尝试了$add,但它在控制台中给了我相同的错误。您正在从最顶端的服务返回。拆下那条线。我已经更新了答案。有太多可能是错误的。你能在JSBin或Plnker中发布一个例子吗?它不起作用。您需要设置ng应用程序和控制器指令。您还需要包括Firebase、AngularFire和AngularFire的脚本引用。我添加了这些,并制作了一个新的plunker。问题与以前相同,您没有将newGroup传递给groupsService.addGroup()
函数。