2017-05-10 3 views
0

Ich versuche eine CRUD mit AngularJS (Project) und ich sah, dass, wenn ich 'Cadastrar' Knopf drücke, es weiterhin in das Array drängt, auch wenn es leer ist. Was ich möchte, ist dieses Verhalten zu verhindern.Korrektur eines Controllers für das Hinzufügen leerer Werte

 $scope.add = function(){ 
     $scope.listProducts.push(
    { 
    codigo:$scope.codigo, nome:$scope.nome, email:$scope.email, login:$scope.login 
    }); 
    $scope.codigo = ''; 
    $scope.nome = ''; 
    $scope.email = ''; 
    $scope.login = ''; 
    }; 

was sollte eine gute Sache sein?

Antwort

1

Kurz gesagt, sollten Sie die Eigenschaften testen, die vor push erforderlich sind.

Ex:

if ($scope.codigo && $scope.nome && $scope.email && $scope.login) { 
    $scope.listProducts.push({ 
    codigo: $scope.codigo, 
    nome: $scope.nome, 
    email: $scope.email, 
    login: $scope.login 
    }); 
} 
+1

Einfach großartig @ developer033 thanks! – samu101108

+0

Es ist ein Vergnügen zu helfen :) – developer033

1

Ihre $ scope.codigo nicht definiert ist, wenn auf dem Array schieben. Wenn Sie verhindern wollen, dass es in ein Array geschoben wird.

Sie müssen Bedingung wie angular.isDefined ($ scope.codigo) verwenden und Bedingung erfüllt dann nur es die Daten in Array schieben.

Sie können $ scope.codigo berechnen, hängt von der Anzahl der Elemente in Ihrer Liste ab.

if(angular.isDefined($scope.codigo)){ 
$scope.listProducts.push(
    { 
    codigo:$scope.codigo, nome:$scope.nome, email:$scope.email, login:$scope.login 
    }); 
    $scope.codigo = ''; 
    $scope.nome = ''; 
    $scope.email = ''; 
    $scope.login = ''; 
    }; 
} 
+0

Sehr nett! Ich wusste nichts über .isDefined(), jetzt lohnt es sich, Danke! – samu101108

Verwandte Themen