TypeError: undefined is not a function when using Firebase.push()

TypeError: undefined is not a function when using Firebase.push()

关注 Lynda.com 使用 Angularjs 构建 data-driven 应用程序。 我正在使用 MeetingsController 尝试将数据推送到 Firebase,但出现以下错误:

TypeError: undefined is not a function
    at g.$scope.addMeeting (meetings.js:10)

这指向meetings.push

会议控制器

myApp.controller('MeetingsController', function($scope, $firebaseObject) {

    var ref = new Firebase('https://attendanced****.firebaseio.com/meetings');

    var meetings = $firebaseObject(ref);

    $scope.meetings = meetings;

    $scope.addMeeting = function() {
        meetings.push({
            name: $scope.meetingname,
            date: Firebase.ServerValue.TIMESTAMP
        }).then(function() {
            $scope.meetingname='';
    });
  }; //addmeeting

});

由于 Firebase 删除了 $firebase 并将 $asObject() 替换为 $firebaseObject,我已经更改了课程给定代码中的控制器。 我看到 Firebase 现在使用 .push() 而不是 .$push()。 我确实看到了问题 29053103,它触及了类似的问题,但最终发布者不得不恢复到旧版本的 AngularFire 和 Firebase 以使其工作,而我不想这样做。

您可以将对象推送到数组,但不能将对象推送到对象。

我希望这应该修复您的应用程序:

    ...
    //I assume that meetings is more then one so that should be $firebaseArray instead of  $firebaseObject
    $scope.meetings = $firebaseArray(ref);

      $scope.addMeeting = function() {
    //you can use $add instad of push that will save yoour object to firebase
            meetings.$add({
                name: $scope.meetingname,
                date: Firebase.ServerValue.TIMESTAMP
            }).then(function() {
                $scope.meetingname='';
        });

...
  }; //addmeeting