如何调用类而不在构造函数angular 2中声明它

时间:2017-06-11 22:35:08

标签: node.js angular ionic2 nfc

我正在尝试使用Ionic 2的NFC模块。这是我的代码:

NFC-scan.ts:

    import {Component} from '@angular/core';
    import {IonicPage, NavController, NavParams, Platform} from 'ionic-angular';
    import { Device } from '@ionic-native/device';
    import {NFC, Ndef} from '@ionic-native/nfc';

    @IonicPage()
    @Component({
        selector: 'nfc-scan',
        templateUrl: 'nfc-scan.html',
    })
    export class NfcScan {
        @ViewChild(Nav) nav: Nav;
NFC: NFC;

    constructor(public platform: Platform,
                    public navCtrl: NavController,
                    public navParams: NavParams,
        ) {

        }

    // NFC Scanning
        checkNFC()
        {
            this.NFC.enabled()
                .then(() => {
                    this.addListenNFC();
                })
                .catch(err => {
                    console.log(err);
                });
        }
    }

NFS-scan.html

<ion-content padding>
    <button on (click)="checkNFC()">Scan NFC</button>
</ion-content>

当我运行应用程序时,我收到错误:

  

在'typeof NFC'类型中不存在属性'已启用'。

我知道我没有在nfc-scan.ts的构造函数中声明NFC。但是当我这样做时,页面甚至不会完全加载。

2 个答案:

答案 0 :(得分:1)

我终于找到了解决这个问题的方法。事实证明,如果没有在要使用它的类的构造函数中声明它,就不能使用类。

在我的情况下,问题是,我在我的机器(Macbook)浏览器中运行应用程序,而NFC插件只能在支持NFC的手机(如相机插件)上实例化。话虽如此,Ionic现在提供了以某种方式模拟插件的功能,以便您可以在机器的浏览器中使用它们。

  

要在浏览器和离子服务会话中使用Ionic Native插件,   你只需要扩展原始的插件类并覆盖它   你想嘲笑的方法。

来源:https://ionicframework.com/docs/native/browser.html

希望能帮助像我这样的人。

答案 1 :(得分:0)

当页面未加载时,您通常会在控制台上看到输出。确保在构造函数中使用私有nfc:NFC;