Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript angularFire无法向firebase添加数据_Javascript_Angularjs_Firebase_Angularfire - Fatal编程技术网

Javascript angularFire无法向firebase添加数据

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

我正在使用angularFire并尝试使用$add将表单中的数据保存到firebase。任何帮助都将不胜感激。控制台记录所有工作,我能够在控制台中检索数据。对不起,所有的代码。。。我想确保我提供了所需的所有材料

app.js:

    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()
函数。