2016-07-12 6 views
0

Ich möchte den Wert des Eingabefeldes abrufen, während der Benutzer schreibt.Angular ng-Modell und Eingabefeld Wert

Ich bekomme nicht wirklich, was ich mit ng-Modell in diesem Fall mache.

Router:

  .state('layout.manifest', { 
       url: '/manifest', 
       templateUrl: 'Content/js/apps/store/views/manifest.html', 
       controller: 'manifestController', 
       controllerAs: 'manifestVm', 
       data: { pageTitle: 'Manifest' } 
      }) 

html:

<input 
     type="text" 
     ng-model="scanCode" 
     ng-keypress="manifestVm.scanId()" 
    /> 

Controller:

vm.scanId = function() { 
    console.log(vm.scanCode); 
} 

Diese undefined zurück.

Ich habe andere Methoden ausprobiert, um den Wert direkt, aber ohne Erfolg abzurufen.

[EDIT: aktualisierenden Router/Controller für Klarheit umfassen]

+0

In Ihrem Controller definieren $ scope.inputs = {scanCode: ""} Dann können Sie es in der Vorlage mit inputs.scanCode zugreifen. Und in der Steuerung können Sie mit $ scope.inputs.scanCode zugreifen – labago

Antwort

0

So einfach wie unten:

Ausblick:

<input ng-model="vm.model" ng-change="vm.see(vm.model)" > 

Controller:

vm.see = function (model){ 
    console.log(model); 
}; 
+0

gibt undefined – DaveC426913

+0

versuchen, 'controller:" manifesteController als vm "' in Ihren Routen? –

0

Das sollte funktionieren.

<input 
    type="text" 
    ng-model="manifestVm.scanCode" 
    ng-keypress="manifestVm.scanId()" 
/> 
+0

Shoot, ich habe den Controller als rückwärts. Ich habe meinen Beitrag repariert. Aber dein Code funktioniert immer noch nicht - er wird mit meinem identisch sein. – DaveC426913

+0

Es sollte ** ControllerName ** als * Alias ​​* sein. Also sollte es stimmen. Können Sie bitte Ihren Controller sowie Ihren gesamten HTML-Code einbeziehen? – 10100111001

+0

Ich sehe es. Modell benötigt VM-Referenz. – DaveC426913

0

Dies ist, wie ich es implementiert haben:

<input 
    type="text" 
    id="scanInput" 
    ng-model="manifestVm.scannedCode" 
    ng-change="manifestVm.findPackageById()" /> 



    vm.scannedCode=null; 
    vm.findPackageById = function() { 
     var inputValue = event.target.value; 
    } 

ich den Wert habe, obwohl das Modell nichts damit zu tun hat.