从get:方法推送到数组

时间:2015-01-28 05:44:51

标签: arrays angularjs push factory

编辑:感谢你解决了这个问题。 list()而不是list。 这是一个愚蠢的问题。

为什么在像这样的工厂推送阵列不起作用? 它只有在我在工厂内部进行推送功能时才有效。

var app = angular.module('app', []);

app.factory('registeredUsersService', function() {
    var registeredUsers = [];
    return {
        list: function () {
            return registeredUsers;
        }
    }
});


app.controller('registerController', function ($scope, registeredUsersService) {
    registeredUsersService.list.push({username: 'a', password: 'b'});
});

2 个答案:

答案 0 :(得分:0)

因为list是函数而不是数组,所以试试这个:

registeredUsersService.list().push({username: 'a', password: 'b'});

注意括号列表()。或者,您也可以将registeredUsers作为服务的公共属性公开,在这种情况下也是如此,即

app.factory('registeredUsersService', function() {
    return {
        registeredUsers = []
    }
});

然后像这样使用它:

app.controller('registerController', function ($scope, registeredUsersService) {
    registeredUsersService.registeredUsers.push({username: 'a', password: 'b'});
});

答案 1 :(得分:0)

尝试使用registeredUsersService.list()而不是registeredUsersService.list:

app.controller('registerController', function ($scope, registeredUsersService) {
    registeredUsersService.list().push({username: 'a', password: 'b'});
});
顺便说一句,我没有测试过。 如果不行,请创建一个plnkr,以便我可以帮助您