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;
}
}
}