QuaggaJS 有 Angular 2 个问题
QuaggaJS with Angular 2 problems
我正在尝试将 QuaggaJS 与 Angular 一起使用 2. 我在应用程序文件夹中有 quagga.d.ts 文件,在组件中有以下导入语句:
import Quagga from './quagga.d';
指南说的是 'quagga' 但它不起作用,但以上有效
declare const Quagga = require('quagga').default;
我在组件的构造函数中有如下代码:
constructor() {
Quagga.init({
inputStream : {
name : "Live",
type : "LiveStream",
target: document.querySelector('#yourElement') // Or '#yourElement' (optional)
},
decoder : {
readers : ["code_128_reader"]
}
}, function(err) {
if (err) {
console.log(err);
return
}
console.log("Initialization finished. Ready to start");
Quagga.start();
});
}
但是,我收到以下错误:
Uncaught (in promise): Error: Error in :0:0 caused by: Cannot read property 'init' of undefined
来自 core.umd.js
和
Uncaught (in promise): Error: Error in :0:0 caused by: Cannot read property 'init' of undefined
TypeError: Cannot read property 'init' of undefined
来自 zone.js
这个错误是什么意思?我想不通! zone.js 有错误吗?
如有任何帮助,我们将不胜感激!
将 Quagga 添加到 node_modules
运行
npm install quagga --save
像往常一样在index.html
中添加js
和css
依赖
例如
<script src="node_modules/....../qugga.min.js"></script>
在app.component.ts
import { Component, OnInit } from '@angular/core';
declare var Quagga:any;
@Component({
selector: 'app-root',
template: `<router-outlet></router-outlet>`
})
export class AppComponent implements OnInit {
ngOnInit() {
Quagga.init({
inputStream : {
name : "Live",
type : "LiveStream",
target: document.querySelector('#yourElement') // Or '#yourElement' (optional)
},
decoder : {
readers : ["code_128_reader"]
}
}, function(err) {
if (err) {
console.log(err);
return
}
console.log("Initialization finished. Ready to start");
Quagga.start();
});
}
}
使用ngOnInit
代替构造函数。虽然构造函数只是实例化组件,但 ngOnInit
将在组件加载后调用。
另外,看看
https://github.com/serratus/quaggaJS/issues/146 获取下一步需要的其他帮助。
我正在尝试将 QuaggaJS 与 Angular 一起使用 2. 我在应用程序文件夹中有 quagga.d.ts 文件,在组件中有以下导入语句:
import Quagga from './quagga.d';
指南说的是 'quagga' 但它不起作用,但以上有效
declare const Quagga = require('quagga').default;
我在组件的构造函数中有如下代码:
constructor() {
Quagga.init({
inputStream : {
name : "Live",
type : "LiveStream",
target: document.querySelector('#yourElement') // Or '#yourElement' (optional)
},
decoder : {
readers : ["code_128_reader"]
}
}, function(err) {
if (err) {
console.log(err);
return
}
console.log("Initialization finished. Ready to start");
Quagga.start();
});
}
但是,我收到以下错误:
Uncaught (in promise): Error: Error in :0:0 caused by: Cannot read property 'init' of undefined
来自 core.umd.js
和
Uncaught (in promise): Error: Error in :0:0 caused by: Cannot read property 'init' of undefined
TypeError: Cannot read property 'init' of undefined
来自 zone.js
这个错误是什么意思?我想不通! zone.js 有错误吗?
如有任何帮助,我们将不胜感激!
将 Quagga 添加到 node_modules
运行
npm install quagga --save
像往常一样在index.html
中添加js
和css
依赖
例如
<script src="node_modules/....../qugga.min.js"></script>
在app.component.ts
import { Component, OnInit } from '@angular/core';
declare var Quagga:any;
@Component({
selector: 'app-root',
template: `<router-outlet></router-outlet>`
})
export class AppComponent implements OnInit {
ngOnInit() {
Quagga.init({
inputStream : {
name : "Live",
type : "LiveStream",
target: document.querySelector('#yourElement') // Or '#yourElement' (optional)
},
decoder : {
readers : ["code_128_reader"]
}
}, function(err) {
if (err) {
console.log(err);
return
}
console.log("Initialization finished. Ready to start");
Quagga.start();
});
}
}
使用ngOnInit
代替构造函数。虽然构造函数只是实例化组件,但 ngOnInit
将在组件加载后调用。
另外,看看 https://github.com/serratus/quaggaJS/issues/146 获取下一步需要的其他帮助。