Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs Ionic 2中具有多个字段的条形码扫描仪_Angularjs_Ionic Framework_Ionic2_Ionic3_Angular2 Forms - Fatal编程技术网

Angularjs Ionic 2中具有多个字段的条形码扫描仪

Angularjs Ionic 2中具有多个字段的条形码扫描仪,angularjs,ionic-framework,ionic2,ionic3,angular2-forms,Angularjs,Ionic Framework,Ionic2,Ionic3,Angular2 Forms,我的条形码扫描仪插件类型脚本文件 scanBarCode() { this.barcodeScanner.scan().then(barcodeData => { this.scannedbarCode = barcodeData.text; }, (err) => { console.log('Error: ', err); }); } clearbar(){

我的条形码扫描仪插件类型脚本文件

     scanBarCode() {
        this.barcodeScanner.scan().then(barcodeData => {
          this.scannedbarCode = barcodeData.text;
        }, (err) => {
            console.log('Error: ', err);
        });
      }

clearbar(){

  this.scannedbarCode= null;
}
条形码扫描仪的HTML端

 <ion-item *ngIf='item.datatype == "barcode"'>
         <ion-label  floating><b>{{item.label}}</b></ion-label>
           <button  ion-button small item-right color="primary" (click)="scanBarCode()">Scan Barcode</button>
           <button  ion-button small item-right color="danger" (click)="clearbar()">Clear</button>   
           <ion-input type="text" value={{scannedbarCode}}></ion-input>       
       </ion-item>
如果我扫描了一个条形码,则第二个条形码值上会出现相同的值。是否有使用ionic表达式中的任何内容来避免这些值。条形码字段根据数据类型条形码动态生成


如果两个字段带有数据类型条形码,它将生成如上所述的两个字段。问题是,如果我扫描一个字段,该值将同时应用于所有其他字段

基于@Suraj Rao comment构建,您将需要为每个项目管理扫描的条形码值。这是一个建议,告诉你如何去做:

this.main2的数据结构需要包括2个新字段:

id:每个项目的唯一id scannedBarCode:每个项目的条形码值 在.html中,扫描或清除条形码时,需要将item.id作为参数传递,并使用item.scannedBarCode作为输入值

在您的.ts中,当扫描或清除条形码时,您需要根据给定的id迭代并获取项目

本节第2节:

this.main2 =[
   { id: "1", label: "Scan barcode one", datatype: "barcode", lookupname: "null", order: "11", scannedBarCode: null, validations: Array(1) },
   { id: "2", label: "Scan barcode two", datatype: "barcode", lookupname: "null", order: "10", scannedBarCode: null, validations: Array(1) },
];
.html

.ts


不认为这与插件有任何关系。这两个字段需要两个不同的变量,而不是一个ScannedBarcode。字段是动态的。这可能取决于用户…可能2个字段有时10个字段。因此,我如何管理这种动态情况。我的意思是如何处理此变量在item对象中有一个附加字段?或者在item对象中维护一个单独的arrayadditional字段。
<ion-item *ngIf='item.datatype == "barcode"'>
  <ion-label floating>
    <b>{{item.label}}</b>
  </ion-label>
  <button ion-button small item-right color="primary" (click)="scanBarCode(item.id)">Scan Barcode</button>
  <button ion-button small item-right color="danger" (click)="clearbar(item.id)">Clear</button>
  <ion-input type="text" value={{item.scannedBarCode}}></ion-input>
</ion-item>
scanBarCode(id) {
    this.barcodeScanner.scan().then(barcodeData => {
        for (var i = 0; i < this.main2.length; i++) {
            if (this.main2[i].id == id) {
                this.main2[i].scannedBarCode = barcodeData.text;
                break;
            }
        }
    }, (err) => {
        console.log('Error: ', err);
    });
}

clearbar(id) {
    for (var i = 0; i < this.main2.length; i++) {
        if (this.main2[i].id == id) {
            this.main2[i].scannedBarCode = null;
            break;
        }
    }
}