私はイオン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を返します。誰かが私に何が起こり、これを解決する方法を説明することができますか?
あなたのtypescriptコンパイラはconnectToDevice関数の '' 'device''引数を与えないとエラーをスローしませんか? – Dhyey
ngOnInit実装でconnecToDeviceメソッドを実行することをお勧めします – HackAfro
どのようにしてtestIsConnectedメソッドを呼び出しますか? LoginPageコンストラクタが呼び出されているかどうかを確認します。まず、LoginPageオブジェクトとBleProviderオブジェクトを作成/開始する必要があります。 let = new BleProvider(); let loginPage = new LoginPage(ble); loginPage.testIsConnected(); //これはisConnected変数の正しい値を出力します。 –