2015-06-03 16 views
5

Ich implementiere angular js und versuche, den Wert des Eingabefeldes zu ermitteln und in den lokalen Speicher zu speichern. Die Eingabe wird vom Benutzer eingegeben und bezieht sich auf die IP-Adresse.Eingabewert mit angularjs abrufen

Unten ist mein HTML-Code:

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

Unten ist mein js Code:

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

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

Warum ist es durch die obige Codierung verwenden, nachdem ich Schlüssel in der IP-Adresse in das Eingabefeld , die $scope.serverip ich bekomme ist immer undefine?

+1

Wie binden Sie Ihre Steuerung mit dem HTML-Format? –

+0

Ich benutze die ionische Plattform – Coolguy

+0

können Sie Plunker oder jfiddle mit Problem bieten? – Grundy

Antwort

0

Haben Sie ng-app und ng-controller richtig eingestellt? Hier ist a plunker demonstriert das gewünschte Verhalten.

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

Ja. Ich denke meine ng-App und ng-Controller ist richtig. Nur dass ich für $ scope.serverip immer undefiniert bin. Wenn mein ng-app und mein ng-Controller falsch sind, wird die $ scope.save-Funktion nicht ausgeführt. Jetzt wurde die Schaltfläche $ scope.save ausgeführt. – Coolguy

+0

Das ist schön. Anstatt es als angularjs zu speichern. Ist es möglich, diesen Wert als Java-Objekt zu speichern? Ich muss diesen Wert in meine Klassen übergeben – Jesse

0

Dies ist die perfekte Arbeitsbeispiel, was Sie suchen:

Live-: http://jsbin.com/bifiseyese/1/edit?html,console,output

Code:

<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

ich irgendwie die richtige Antwort herauszufinden. Wir müssen die serverip in den HTML-Code übergeben zurück:

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

Und in der js-Datei:

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

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

'$ scope.save' hat bereits Zugriff auf' $ scope.serverip'. Manuelles Übergeben ist nicht notwendig und vermeidet nur die Datenbindung, mit der Angular aufgebaut ist, um Ihnen zu helfen. –

Verwandte Themen