2017-07-19 17 views
1

私のIonic3/Angular4 AppでQuggaJSを動作させようとしています。 しかし、イムは、常にエラーを取得:未知(未定):TypeError:未定義のプロパティ 'init'を読み取ることができません

Uncaught (in promise): TypeError: Cannot read property 'init' of undefined TypeError: Cannot read property 'init' of undefined at new Scanner 
私は本当にQuarraが定義されていない理由を私は通常私のプロジェクトにインポートしたので、知らない

? まず、私がやった:

npm install quagga 

をし、次のように、その後、それは私のプロジェクトにインポートにそれをやった:

import * as Quagga from 'quagga'; 

が、私はまだエラーを取得しています。

私の活字体のコードは次のようになります。

import { Component } from '@angular/core'; 
import { IonicPage, NavController, NavParams } from 'ionic-angular'; 
import * as Quagga from 'quagga'; 

@Component({ 
    selector: 'page-scanner', 
    templateUrl: 'scanner.html', 
}) 
export class Scanner { 

    constructor(public navCtrl: NavController, 
    public navParams: NavParams) { 
     Quagga.init({ 
      inputStream : { 
       name : "Live", 
       type : "LiveStream", 
       // Or '#yourElement' (optional) 
       target: document.querySelector('#scanner') 
      }, 
      decoder : { 
      //Change Reader for the right Codes 
      readers: [ "code_128_reader", 
         "ean_reader", 
         "ean_8_reader", 
         "code_39_reader", 
         "code_39_vin_reader", 
         "codabar_reader", 
         "upc_reader", 
         "upc_e_reader", 
         "i2of5_reader" ], 
      } 
     }, function(err) { 
      if (err) { 
       console.log(err); 
       return 
      } 
      console.log("Initialization finished. Ready to start"); 
      Quagga.start(); 
     }); 
    } 
} 

私は本当にあなたたちはそれを把握することができます願っています!で結果の

declare var Quagga:any; 

"scripts": [ 
     "node_modules/path/qugga.min.js" 
     ], 

これを追加:あなたは角度-CLIは、あなたのscripts配列(WebPACKのために同じもの)にこれを追加使用している場合

+0

あなたが 'import'で環境を使っているのであれば、なぜ' require'も使うでしょうか? –

+0

ああ、それを削除しませんでした。私はそれが何かを変えるとしか試みなかったが、それはしない。 –

+0

[ドキュメントの例](https://serratus.github.io/quaggaJS/)は 'import quagga from 'quagga';'ではなく、quagga 'から' quagga 'としてインポートします。なぜあなたは後者を使用していますか? –

答えて

0

を助けてくれてありがとう

また、 Quagga.init({ngOnInit()に移動して、コンポーネントが完全にロードされていることを確認します。

+0

私はそれが必要だったので、あなたのコードをngOnInitで更新してください。また、私はquaggaからimport Quaggaの両方が必要でした。そして を宣言します。var Quagga:any;それを働かせるために。 –

+0

@ lukay97華麗で、私はとてもうれしいですね。私は私の答えを更新しました、それは同じ問題を持つ他の人を助けることができる願っています!乾杯! – SrAxi

関連する問題