0

私の ionic2 アプリで、Ionic Native に含まれていない Cordova プラグインを使用しようとしました。ここで Josh Morony によって書かれた記事を参照しました: https://www.joshmorony.com/using-cordova-plugins-in-ionic-2-with-ionic-native/。すべて正常に動作します (コードは問題なくコンパイル、実行されます)。

このプラグインは Ionic Native でサポートされていないため、約束も観察もできず、応答に時間がかかります。このプラグインは値を返しました。プラグインから返された値を自分のビューに割り当てようとしましたが、失敗しました (エラー メッセージ: TypeError: null はオブジェクトではありません ('this.name=t' を評価しています))。

PS:アラート、アラート(応答)に応答を入れるだけで、返された値が正しく表示されます。

以下は私のコードです。ここにいる誰かが私を助けてくれますか? どうもありがとうございました :-)

import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
import { Platform } from 'ionic-angular';

declare var airwatch;
@Component({
  selector: 'page-home',
  templateUrl: 'home.html'
})
export class HomePage {
  name: string = null;
  constructor(public navCtrl: NavController, platform: Platform) {

    // code starts here
    platform.ready().then(() => {
      (<any>window).plugins.airwatch.username(function(response){

        alert(response);// this alert works! it will correctly show the response in text mode (the response is text)

        this.name = response; // the line failed, it said: cannot insert null to this.name but I thought the response is text and it works when I use alert or console.log

      }, function(error){
        this.name = error;
      });


    });

  }

}

コードをionViewDidLoad() {}にも配置しようとしましたが、それでも機能しませんでした。同じエラー メッセージ: TypeError: null はオブジェクトではありません ('this.name=t' を評価しています)

NgZone を試みましたが、うまくいきませんでした。

戻り値が角度のある「スコープ」にないためですか?

4

1 に答える 1