【问题标题】:how to call class without declaring it in constructor angular 2如何调用类而不在构造函数角度2中声明它
【发布时间】:2017-06-11 22:35:07
【问题描述】:

我正在尝试使用 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。但是当我这样做时,页面甚至不会完全加载。

【问题讨论】:

  • NFC:NFC 可能会导致此问题。您声明了一个与类同名的变量,将其更改为 nfc : NFC 或您喜欢的其他名称,然后尝试。
  • @0m3rF 我已经这样做了,但没有运气。
  • hmmm ...据我所知,您应该在构造函数中声明它。即使是可注入的服务,也可以这样工作。您确定在构造函数中声明 NFC 会导致无法加载页面吗?
  • 是的。一旦我将它添加到构造函数中,页面根本不会加载。也不会抛出任何错误。所以不知道怎么回事。
  • 感谢您的意见。找到后我会在这里发布解决方案。

标签: node.js angular ionic2 nfc


【解决方案1】:

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

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

要在浏览器和 ionic 服务会话中使用 Ionic Native 插件, 您只需要扩展原始插件类并覆盖 你想模拟的方法。

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-09
      • 1970-01-01
      • 1970-01-01
      • 2016-11-07
      • 2012-02-10
      • 1970-01-01
      • 1970-01-01
      • 2019-10-22
      相关资源
      最近更新 更多