2017-06-25 10 views
2

私はイオン2に問題があり、あなたのうちの1人が私を助けてくれるかもしれません。 基本的には、私はBLE機能を含むビルドしているプロバイダを持っています。私は1つの私のページにこのプロバイダを含める。そしてこのページから私は問題なく機能を呼び出すことができます。しかし、私が望むのは、プロバイダーであるパブリック変数にアクセスすることです。この変数はステータス接続(trueまたはfalse)です。私はBLEに接続されているかどうかを知るために私のページからアクセスしたいと思います。イオン2:プロバイダまたはページからの可変値へのアクセス

ここに私のコードは

BleProvider.ts

@Injectable() 
export class BleProvider { 

public isConnected:boolean; 

constructor(public http: Http) { 
console.log('Hello BleProvider Provider'); 
} 

connectToDevice(device){ 
this.isConnected = true; 
} 
} 

マイページLogin.ts

import { BleProvider } from '../../providers/ble/ble' 
@IonicPage() 
@Component({ 
selector: 'page-login', 
templateUrl: 'login.html', 
}) 
@NgModule({ 
providers: [BleProvider], 
}) 

export class LoginPage { 

constructor(public ble: BleProvider){ 
ble.connectToDevice(); 
} 

function testIsConnected(){ 
console.log("isConnected value: " + this.ble.isConnected); 
} 
} 

はconsole.log「が接続されている値を返しますです:未定義を、私はをisConnectedを設定した場合、 connectToDevice関数がisConnectedをtrueに設定しても、プロバイダーのコンストラクターで(this.isConnected = falseなど)、私は自分のページから呼び出すときに値falseを返します。誰かが私に何が起こり、これを解決する方法を説明することができますか?

+0

あなたのtypescriptコンパイラはconnectToDevice関数の '' 'device''引数を与えないとエラーをスローしませんか? – Dhyey

+0

ngOnInit実装でconnecToDeviceメソッドを実行することをお勧めします – HackAfro

+0

どのようにしてtestIsConnectedメソッドを呼び出しますか? LoginPageコンストラクタが呼び出されているかどうかを確認します。まず、LoginPageオブジェクトとBleProviderオブジェクトを作成/開始する必要があります。 let = new BleProvider(); let loginPage = new LoginPage(ble); loginPage.testIsConnected(); //これはisConnected変数の正しい値を出力します。 –

答えて

-1

上記のコメントに追加する私はこれがあなたのために働くと思う。

constructor(public ble: BleProvider){ 
} 

ngOnInit(){ 
    this.ble.connectToDevice() 
} 

私は役立つことを望みます。

関連する問題