为什么在像这样的工厂推送阵列不起作用? 它只有在我在工厂内部进行推送功能时才有效。
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'});
});
答案 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,以便我可以帮助您