2015-06-03 42 views
5

Sto implementando js angolari e sto cercando di ottenere il valore della casella di input e di memorizzarlo nella memoria locale. L'input è digitato dall'utente e si riferisce all'indirizzo ip.Ottieni il valore di input usando angularjs

Qui di seguito è il mio codice html:

<div> 
    <input ng-model="serverip"> 
    <input type="button" class="button" value="Apply" ng-click="save()"> 
    </div> 

Qui di seguito è il mio codice js:

.controller('Ctrl', function($scope) { 

    $scope.save= function() { 
     console.log($scope.serverip); 
     localStorage.setItem('serverip', $scope.serverip); 
    }; 
}) 

Perché è utilizzando la codifica di cui sopra, dopo tasto I l'indirizzo IP nella casella di input , il $scope.serverip che ottengo è sempre indefinito?

+1

Come si associa il controller per il codice HTML? –

+0

Sto usando la piattaforma ionica – Coolguy

+0

puoi fornire plunker o jsfiddle con problemi? – Grundy

risposta

0

Avete impostato correttamente ng-app e ng-controller? Ecco a plunker dimostrando il comportamento che desideri.

HTML:

<body ng-controller="Ctrl"> 
    <div> 
    <input ng-model="serverip"> 
    <input type="button" class="button" value="Apply" ng-click="save()"> 
    </div> 
    <p> 
    Saved IP: {{savedip}} 
    </p> 
</body> 

Controller:

var app = angular.module('plunker', []); 

app.controller('Ctrl', function($scope) { 

    $scope.save = function() { 
     $scope.savedip = $scope.serverip 
    }; 
}) 
+1

Sì. Penso che il mio ng-app e ng-controller sia corretto. Solo che ottengo sempre indefinito per $ scope.serverip. Se la mia ng-app e il mio ng-controller sono sbagliati, penso che la funzione $ scope.save non verrà eseguita. Ora, il pulsante $ scope.save è stato eseguito. – Coolguy

+0

Questo è bello. Invece di salvarlo come un angularjs. è possibile salvare quel valore come un oggetto java? Ho bisogno di passare quel valore nelle mie classi – Jesse

0

Questo è il perfetto esempio di lavoro di quello che stai cercando:

dal vivo: http://jsbin.com/bifiseyese/1/edit?html,console,output

Codice:

<div ng-app="app" ng-controller="Ctrl"> 
    <input type="text" ng-model="serverip"/> 
    <button ng-click="save()">Save</button> 
</div> 

<script src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.15/angular.min.js"></script> 
<script type="text/javascript"> 
angular.module('app',[]).controller('Ctrl', ['$scope', function($scope){ 
    $scope.save = function(){ 
     localStorage.setItem('serverip', $scope.serverip); 
     console.log("localStorage.serverip = " + localStorage.serverip); 
    }; 
}]); 
</script> 

1

ho un pò trovare la risposta corretta. Dobbiamo passare indietro il serverip nel codice HTML:

<div> 
    <input ng-model="serverip"> 
    <input type="button" class="button" value="Apply" ng-click="save(serverip)"> 
    </div> 

E nel file js:

.controller('Ctrl', function($scope) { 

    $scope.save = function(serverip) { 
     console.log(serverip); 
     localStorage.setItem('serverip', serverip); 
    }; 
}) 
+1

'$ scope.save' ha già accesso a' $ scope.serverip'. Passare manualmente non è necessario e basta evitare l'associazione dei dati. Angular è progettato per aiutarti. –

Problemi correlati