Arrays 从get:method推送到数组
编辑:多亏了你才解决了这个问题。list()而不是list。 这么愚蠢的问题 为什么在这样的工厂里推动阵列不起作用? 只有在工厂内执行推送功能时,它才能工作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 () {
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,这样我可以帮助您当我这样推时,我看不到结果,但是当将推方法移动到工厂内部时,它可以工作。谢谢!它起作用了!我真不敢相信我犯了这么愚蠢的错误!我通常也会犯这样的错误:)