2016-07-12 3 views
0

Я хочу получить значение поля ввода при вводе пользователем.Угловая ng-модель и значение входного поля

В этом случае я действительно не понимаю, что я делаю с ng-model.

Маршрутизатор:

  .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()" 
    /> 

Контроллер:

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

Это возвращает неопределенными.

Я пробовал другие методы для извлечения значения напрямую, но безрезультатно.

[EDIT: обновление, чтобы включать в себя маршрутизатор/контроллер для ясности]

+0

В вашем контроллере определить $ scope.inputs = {scanCode: ""} Затем вы можете получить к нему доступ в шаблоне с помощью inputs.scanCode. И в контроллере вы можете получить доступ с помощью $ scope.inputs.scanCode – labago

ответ

0

так просто, как показано ниже:

Вид:

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

Контроллер:

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

возвращает undefined – DaveC426913

+0

try 'controller:" manifestController as vm "' в ваших маршрутах? –

0

Это должно сработать.

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

Стреляй, я получил контроллер как назад. Я исправил свой пост. Но ваш код все еще не работает - он будет идентичен моему. – DaveC426913

+0

Это должно быть ** Имя_контроллера ** как * псевдоним *. Поэтому это должно быть правильно. Можете ли вы добавить свой контроллер, а также весь свой HTML-код. – 10100111001

+0

Я вижу. Требуется модель vm. – DaveC426913

0

Это, как я реализовал его:

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



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

У меня есть значение, хотя модель не имеет ничего общего с ним.

Смежные вопросы