2016-06-13 24 views
0

私は1つの入力ボックスを持っていて、何かをスキャンするときに自動的に数値を入力するスキャナで作業しています。何か案は?あなたは変数がであればデータを入力した後に入力フィールドをリセットする

を働いているどのような角度データバインディングについてお読みください

HTML

<ion-view hide-nav-bar="true"> 
    <ion-content class="padding"><br> 

    <label class="item item-input"> 
     <input type="number" ng-model="code" id="code" name="theInput" auto-focus> 
    </label> 

    <div class="tt"><br><br> 
     Code : <span class="art">{{code}}<br><br></span> 
    </div><br> 

    <button ng-click="clear(code)" class="button button-positive"> 
    Clear 
    </button> 
    </ion-content> 
</ion-view> 

JS

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

    window.onload = function() { 
     document.getElementById("code").focus(); 
    }; 


    $scope.clear= function(code){ 

    $scope.val = code; 

    document.getElementById("code").value = ''; 

} 
+0

スキャナは入力の最後に「戻る」文字を送信しますか(通常はそうです)?もしそうなら、これはフォームを提出するので、フォームに 'ng-submit'を追加して' $ scope.code'を読んで何かをしてから、それを空白にリセットすることができます。 – Rhumborl

答えて

0

ちょうど1ラインの変更

$scope.clear= function(code){ 
$scope.val = code; 
$scope.code = ''; //ng-model of input is code 
} 
0

scビューがそれにアクセスできます。コントローラ側の変数値を変更すると、ビューは自動的に更新され、その逆もあります。 http://plnkr.co/edit/u3loqpxYIBMX65O9FXGD?p=preview

:これはplunkerで厳密に同じ $scope.code = '';


ようです

`document.getElementById("code").value = '';` 

あなたは、できるだけ多くすることができます。このように、コントローラからDOMを操作するようにjQueryを使用しないでください

入力を格納する配列を作成します

JS:

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

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

    $scope.selected = [] ; 
    $scope.code = null ; 
    $scope.next = function(){ 
    $scope.selected.push($scope.code); 
    $scope.code = null 

    } 
}); 

HTML:角度で

<body ng-controller="MainCtrl"> 

<ion-view hide-nav-bar="true"> 
    <ion-content class="padding"><br> 

    <label class="item item-input"> 
     <input type="number" ng-model="code" id="code" name="theInput" auto-focus> 
    </label> 

    <div class="tt"><br><br> 
     Code : <span class="art">{{code}}<br><br></span> 
    </div><br> 

    <button ng-click="next()" class="button button-positive"> 
     scan next 
    </button> 
    </ion-content> 
</ion-view> 

<pre>{{selected|json}}</pre> 


</body> 
+0

これで問題ないですが、ボタンなしで自動化する方法はありますか?次のようなものです:number scaned - save number、clear(); – Mark

+0

はい、確かに@ C14Lの応答を見てください。あなたのスキャナは入力だけを埋めますか? – AlainIb

+0

はい、彼のアドバイスで作業していません – Mark

0

、このdocument.getElementById("code").value = '';ような何かをしないようにしてみてください。

code変数を変更するだけで、新しい値を取得した場合は値リストにコピーしてから、値をcodeから削除することができます。

.controller('PriCtrl', function($scope) { 
    $scope.$watch('code', function(newVal, oldVal) { 
     if (newVal != '') { 
      $scope.codelist.push(newVal); 
      $scope.code = ''; 
     } 
    }); 
} 
関連する問題