Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ionic framework 如何实时更新离子切换状态?_Ionic Framework_Ionic2 - Fatal编程技术网

Ionic framework 如何实时更新离子切换状态?

Ionic framework 如何实时更新离子切换状态?,ionic-framework,ionic2,Ionic Framework,Ionic2,我的应用程序中有一个离子开关,它将他的状态存储在firebase数据库中,有没有办法用从firebase加载的数据更改他的状态 例如,如果数据库中的状态为true,则当我加载视图时,切换将打开。我试过使用checked: <ion-toggle checked="status()" > 其中status返回一个布尔值 但由于firebase的异步功能,视图在状态值之前加载第一个。目前无法找到解决此问题的方法,我非常感谢您的帮助。是的,有办法做到这一点,但在属性中使用函数是没有好处的

我的应用程序中有一个离子开关,它将他的状态存储在firebase数据库中,有没有办法用从firebase加载的数据更改他的状态

例如,如果数据库中的状态为true,则当我加载视图时,切换将打开。我试过使用checked:

<ion-toggle checked="status()" >
其中status返回一个布尔值


但由于firebase的异步功能,视图在状态值之前加载第一个。目前无法找到解决此问题的方法,我非常感谢您的帮助。

是的,有办法做到这一点,但在属性中使用函数是没有好处的。当在DOM中使用返回值的函数时,每次DOM发生更改时,都会执行该函数,因此,由于这是一个在Firebase上获取内容的函数,因此每次更新DOM时,都会让用户向Firebase发出请求

一个很好的方法是将Firebase结果存储在一个变量中。当您进入de页面时,可以这样做:

public myStatus: boolean;

// USING A LIFECYCLE HOOK
ionViewWillLoad(){
  firebase.database().ref(`Path/To/Your/Status`).once('value', snapshot => {
    this.myStatus = snapshot.val();
  });
}
在你的HTML中

<ion-toggle [checked]="myStatus">
<!-- You need to bind your checked attribute to myStatus, using checked="{{myStatus}}" also works -->

希望这能有所帮助。

哇,非常感谢你,它确实有效!我真不敢相信解决办法竟如此简单!
ionViewWillLoad(){
  firebase.database().ref(`Path/To/Your/Status`).once('value', snapshot => {
    this.myStatus = snapshot.val();
  });
  firebase.database().ref(`Path/To/Your/Status`).on('child_changed', snapshot => {
    this.myStatus = snapshot.val();
  });

  // YOU'LL NEED BOTH SINCE THE FIRST LOADS THE STATUS FOR THE FIRST TIME AND THE SECCOND CREATES AN OBSERVABLE FOR WHEN THE STATUS CHANGE.
}