Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.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
Arrays 从get:method推送到数组_Arrays_Angularjs_Push_Factory - Fatal编程技术网

Arrays 从get:method推送到数组

Arrays 从get:method推送到数组,arrays,angularjs,push,factory,Arrays,Angularjs,Push,Factory,编辑:多亏了你才解决了这个问题。list()而不是list。 这么愚蠢的问题 为什么在这样的工厂里推动阵列不起作用? 只有在工厂内执行推送功能时,它才能工作 var app = angular.module('app', []); app.factory('registeredUsersService', function() { var registeredUsers = []; return { list: function () {

编辑:多亏了你才解决了这个问题。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'});
});

因为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'});
});

请尝试RegisteredUserService.list()而不是RegisteredUserService.list:

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

当我这样推时,我看不到结果,但是当将推方法移动到工厂内部时,它可以工作。谢谢!它起作用了!我真不敢相信我犯了这么愚蠢的错误!我通常也会犯这样的错误:)