我是编程新手,我遇到了内存概念问题。
我有一个用户页面通过ng-repeat显示数据库中的用户,每个用户都有一个编辑或删除选项。 我也在该页面上有一个按钮来添加一个新用户。我的问题是,当我编辑用户时,该用户的信息仍保留在内存中。因此;当我点击新的时候,这些字段会填入我编辑的最新用户。 下面是我的代码,当我点击添加一个新用户时,我怎样才能让它创建一个新对象。以角度创建新对象
var app = angular.module("dico", []);
app.service('srvUsuarios', function($http){
var usuarios = [];
var usuario = {"id":"","fullname":"","username":"","password":"", "role_id":"","email":""};
this.getusuarios = function(){
return usuarios;
};
this.getusuario = function(){
return usuario;
};
this.nuevo = function(){
usuario=new Object();
usuario.id = "";
usuario.fullname = "";
usuario.username = "";
usuario.password = "";
usuario.role_id = "";
usuario.email = "";
};
this.editar = function(usuarioEditar){
//usuario=new Object();
//console.log(usuario);
usuario.id = usuarioEditar.id;
usuario.fullname = usuarioEditar.fullname;
usuario.username = usuarioEditar.username;
usuario.password = usuarioEditar.password;
usuario.role_descripcion = usuarioEditar.role_descripcion;
usuario.email = usuarioEditar.email;
console.log(usuario);
};
});
app.controller("usuarios", function($scope,$http, srvUsuarios){
$scope.usuarios = srvUsuarios.getusuarios();
console.log($scope.usuarios);
$scope.usuario = srvUsuarios.getusuario();
console.log($scope.usuario);
$http.get(ROOT+'usuarios/listar').then(
function(response){
$scope.usuarios = response.data;
$scope.usuarios.push($scope.usuario);
console.log($scope.usuarios);
}, function errorCallback(response){
console.log("Error", response);
});
$scope.filaLimite = 100;
$scope.sortColumn = "name";
$scope.reverseSort = false;
$scope.sortData = function(column){
$scope.reverseSort = ($scope.sortColumn == column) ? !$scope.reverseSort : false;
$scope.sortColumn = column;
}
$scope.getSortClass = function(column){
if($scope.sortColumn == column){
return $scope.reverseSort ? "arrow-down" : "arrow-up";
}
return "";
}
$scope.nuevo = function(){
srvUsuarios.nuevo();
}
$scope.editar = function(usuario){
srvUsuarios.editar(usuario);
}
$scope.eliminar = function(usuario){
var index = $scope.usuarios.indexOf(usuario);
if (index > -1){
$http.post(ROOT+'/usuarios/eliminar',{id:usuario.id}).then(
function(response){
if (response.data="true"){
$scope.usuarios.splice(index, 1);
}
},function errorCallback(response){
console.log("Error", response);
}
);
}
}
$scope.myVar = false;
$scope.toggle = function() {
$scope.myVar = !$scope.myVar;
};
$scope.show = function(id){
if(id == ""){
$scope.mostrar = "0";
console.log($scope.mostrar)
}
else{
$scope.mostrar = "1";
}
}
});
app.controller("usuario", function($scope, $http, srvUsuarios){
$scope.usuario = srvUsuarios.getusuario();
$scope.usuarios = srvUsuarios.getusuarios();
$scope.accion = function(id){
if(id == ""){
return "Nuevo";
}
else{
return "Editar";
}
}
$scope.guardar = function(usuario){
if(usuario.id == ""){
$http.post(ROOT+'usuarios/insertar',{
'fullname':usuario.fullname,
'username':usuario.username,
'email':usuario.email})
.then(function(response){
console.log(response);
location.reload(true);
},function errorCallback(response){
console.log("Error", response);
}
);
}else{
console.clear();
console.log($scope.usuarios);
$http.post(ROOT+'usuarios/editar',{'id':usuario.id,
'fullname':usuario.fullname,
'email':usuario.email})
.then(function(response){
console.log(usuario.id);
location.reload(true);
},function errorCallback(response){
console.log($scope.usuarios);
console.log("Error", response.data);
}
);
}
}
});
您可以创建HTML代码的示例代码段。这会更容易引导你。 –