使用 firebase 获取$add angular 应用程序不是一个功能

Angular app using firebase getting $add is not a function

本文关键字:功能 一个 获取 firebase add 应用程序 angular 使用      更新时间:2023-09-26

我有一个角度服务:

(function(){
    "use strict";
    angular
        .module('todoapp')
        .factory('ListService', ListService);
    ListService.$inject = ['$firebaseArray'];
    function ListService($firebaseArray) {
        var ref = new Firebase('https://---firebase-name---.firebaseio.com/items/'),
        list = $firebaseArray(ref);
        return list;

    }
})();

从控制器调用

(function () {
"use strict";
angular
    .module('todoapp')
    .controller('ListController', ListController);
ListController.$inject = ['$scope', '$log', 'ListService'];
/* @ngInject */
function ListController($scope, $log, ListService) {
    var listCtrl = this;
    listCtrl.items = ListService;
    listCtrl.add = function(form){
        //ADD TO FIREBASE
        console.log(listCtrl.newList);
        listCtrl.newList.$add(listCtrl.newList);
}

当我触发listCtrl.add()时,我收到错误:

listCtrl.newList.$add is not a function

现在,我尝试传递的listCtrl.newList对象仅包含我尝试更新的 Firebase 对象中包含的节点,但不是全部,以为我只需要包含正在更改的节点。我不认为对象是问题,因为方法$add是它出错的地方而不是在它内部。

我还尝试像这样将$asArray添加到火力基地meothod中:

list = $firebaseArray(ref).$asArray();

但是这错误地找不到$asArray有什么想法吗?

listCtrl.items.$add而不是listCtrl.newList.$add