【问题标题】:Why is my AngularFire push( ) not working?为什么我的 AngularFire push() 不起作用?
【发布时间】:2015-02-28 21:19:25
【问题描述】:

我正在尝试通过运行一个典型的待办事项教程来学习 Angular 和 Firebase,但我正在修改应用程序。我实际上是在创建“用户”,而不是待办事项列表。

Firebase 设置正确,从 Firebase 中提取对象数据也可以正常工作,我可以通过 ng-repeat 看到所有内容都按预期填充。

但我正在尝试使用 .push() 方法“添加新成员”,但收到错误消息。请看:

这是我上传到 Firebase 的 JSON 数据示例(只有一个用户)

{
  "members": {
    "-JWT5y43YFy1mGirVVS2": {
    "date": 1410328158691,
    "firstname": "Michael",
    "lastname": "Jordan",
    "project": "sample project description",
    "image": "http://telehealth.org/wp-content/images/user-placeholder.jpg",
    "upcoming": "PTO on Thursday",
    "status": {
      "color":  "red",
      "contact": {
      "email": "test@email.com",
      "yahoo": "yahooIM"
        },
      "projects": {
        "projectone": "project one",
        "projecttwo": "project two",
        "projectthree": "project three"
        }
      }
    }
  }
}

这是我的 .html 代码

<h1 id="teamTitle">Team Members</h1>
<div class="addMember">
    <p>add member</p>
    <form class="formmember"
        name="memberform"
        ng-submit="addMember()"
        novalidate>
            <div class="inputwrapper">
                <input type="text" name="firstname" placeholder"First Name" ng-required="true">
                <button type="submit" class="btn"
                ng-disabled="memberform.$invalid">Add</button>
            </div>
    </form>
</div>
<ul class="cbp-rfgrid" ng-repeat="member in members">
    <li class="{{member.status.color}}">
        <img src="{{member.image}}">
        <div>
            <h3>{{member.firstname}}</h3>
            <button>View</button>
        </div>
    </li>
</ul>

这是我的 Controller.js

myApp.controller('MembersController', function($scope, $firebase){

var ref = new Firebase('https://scrumcheck.firebaseio.com/members');
var members = $firebase(ref);

$scope.members = members.$asObject();

$scope.addMember = function(){
    members.$push({
        firstname: $scope.firstname,
        date: Firebase.ServerValue.TIMESTAMP
    });
}

});

控制台日志显示此错误:

 Error: Firebase.set failed: First argument contains undefined in property 'firstname'

我希望通过推送到成员,一个只有名字键的对象,它可以让我这样做。我是否只允许 push() 一个包含所有键值的整个对象?

谢谢!

【问题讨论】:

  • 你试过用 save() 代替 push 吗?

标签: angularjs undefined firebase angularfire controllers


【解决方案1】:

检查您的 $scope.firstname 模型,这就是问题所在。确保它不是空值并正确定义。

【讨论】:

  • 你是对的,我什至根本没有 ng-model !这就是我们凌晨 3 点开发人员时会发生的事情......
猜你喜欢
  • 2021-03-19
  • 1970-01-01
  • 2015-09-25
  • 2018-03-05
  • 2013-04-19
  • 2015-10-17
  • 2016-02-20
  • 2023-04-03
  • 2012-01-07
相关资源
最近更新 更多