2014-07-23 15 views
7

Sto cercando di fare una semplice console.log() da questo $ campo di applicazione:

<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> 

Questo è il mio file JavaScript:

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

    console.log($scope.customer); 

}); 

Ma il registro mi restituisce indefinito. Cosa c'è che non va?

Questa è la plunkr: http://plnkr.co/edit/MU2i46o03bs22Jwh6QIe

+1

Il $ scope.customer' 'non è initilized da nessuna parte, quindi è dovrebbe essere indefinito. Inizierà ad avere dati dopo aver digitato qualcosa in questi input. – runTarm

risposta

5

Come gli altri hanno già detto, è necessario inizializzare l'oggetto cliente.

Poiché non vi è alcun valore del set cliente dal controller, appare come non definito nella vista. Quando si immettono i valori nelle caselle di immissione, questo non sarà più definito, ma dal momento che la registrazione è fatto solo una volta inizialmente, digitando i valori nella casella di input non ha effetto

Plunker Demo

Ecco la parte che ho cambiato in script.js

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

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

console.log($scope.customer); 

}); 
0

Perché il codice JS

console.log($scope.customer); 

corsa quando si init il controller CustomerController, a quel tempo $ scope.customer non ha alcun valore e tornare indefinito.