Ahmed Karmous Ahmed Karmous - 1 year ago 48
AngularJS Question

angularjs add value Cannot set property 'id' of undefined

I'm trying to add a new entry to a table I have this query

$scope.addClient = function() {

var clientId = $scope.items.length;
$scope.client.id = clientId++;


this is my form

<div class="modal-header">
<h2>Ajouter client</h2>
<form role="form" ng-submit="addClient()">
<div class="modal-body">
<label for="name">Nom : </label>
<input type="text" id="name" class="form-control input" ng-model="client.name" value=" {{client.name}}" />

<label for="age">Age : </label>
<input type="text" id="age" class="form-control input" ng-model="client.age" value="{{client.age}}" />

<label for="gender">Sexe : </label>
<input type="text" id="gender" class="form-control input" ng-model="client.gender" value="{{client.gender}}" />

<label for="email">Email : </label>
<input type="text" id="email" class="form-control input" ng-model="client.email" value="{{client.email}}" />

<label for="company">Société : </label>
<input type="text" id="company" class="form-control input" ng-model="client.company" value="{{client.company}}" />
<div class="modal-footer">
<button type="submit" class="btn btn-primary" >Confirmer</button>
<button class="btn btn-warning" ng-click="cancel()" >Annuler</button>

It tells me

Cannot set property 'id' of undefined

and nothing is added.

Answer Source

Your problem is the line

$scope.client.id = clientId++;

because $scope.client is never defined.

To solve this add

$scope.client = {};


$scope.addClient = function() { ... }