web-dev-qa-db-fra.com

AngularJS - Simple $ scope console.log () renvoie undefined

J'essaye de faire une simple console.log() à partir de cette portée $:

<div ng-controller="CustomerController" id="customer-block">

  <h3>Customer Information</h3>

  <div class="col-md-4">
      <label>Address 1:</label>
      <input type="text" ng-model="customer.address1" class="form-content"
        id="customer-address1" />
    </div>

    <div class="col-md-4">
      <label>Address 2:</label>
      <input type="text" ng-model="customer.address2" class="form-content"
        id="customer-address2" />
    </div>

    <div class="col-md-4">
      <label>City</label>
      <input type="text" ng-model="customer.city" class="form-content"
        id="customer-city" />
    </div>

</div>

Voici mon fichier javascript:

lima3app.controller("CustomerController", function($scope){

  console.log($scope.customer);

});

Mais le journal me renvoie indéfini . Qu'est-ce qui ne va pas avec ça?

C'est le plunkr: http://plnkr.co/edit/MU2i46o03bs22Jwh6QIe

10
Jhonatan Sandoval

Comme les autres l'ont dit, vous devez initialiser l'objet client.

Puisqu'il n'y a aucune valeur de client définie par le contrôleur, il apparaît comme indéfini dans la vue. Lorsque vous entrez des valeurs dans les zones de saisie, cela ne sera plus indéfini, mais comme la journalisation n'est effectuée qu'une seule fois initialement, la saisie de valeurs dans la zone de saisie n'a aucun effet.

Démo Plunker

Voici la partie que j'ai changé dans script.js

lima3app.controller("CustomerController", function($scope){

$scope.customer = {
  address1 : 'address1',
  address2 : 'address2',
  city:'city'
}

console.log($scope.customer);

});
7
adib.mosharrof

Parce que votre code JS

console.log($scope.customer);

exécuté lorsque vous lancez le contrôleur CustomerController, à ce moment-là $ scope.customer n'a aucune valeur et il retourne undefined.

0
Thach Nguyen