Ionic-framework: рдЖрдпреЛрдирд┐рдХ v3 - рд░рдирдЯрд╛рдЗрдо рддреНрд░реБрдЯрд┐ рдзреНрдпрд╛рди рдореЗрдВ рдирд╣реАрдВ рдЖрдпрд╛ (рд╡рд╛рджреЗ рдореЗрдВ): рдирд┐рдХрд╛рд▓реЗрдВ рджреГрд╢реНрдп рдирд╣реАрдВ рдорд┐рд▓рд╛ рдерд╛

рдХреЛ рдирд┐рд░реНрдорд┐рдд 29 рдЕрдкреНрд░реИрд▓ 2017  ┬╖  31рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: ionic-team/ionic-framework

рдЖрдпреЛрдирд┐рдХ рд╕рдВрд╕реНрдХрд░рдг: ("x" рдХреЗ рд╕рд╛рде рдПрдХ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ)
[рдПрдХреНрд╕] 3.x

рдореИрдВ рдПрдХ рдЬрдорд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ ... ("x" рдХреЗ рд╕рд╛рде рдПрдХ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ)
[рдПрдХреНрд╕] рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ

рд╡рд░реНрддрдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░:

2 рдлрд╝реАрд▓реНрдб рдИрдореЗрд▓ рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рд╕рд╛рде рд╕рд╛рдЗрдирдЕрдк рдлреЙрд░реНрдо рд╣реЛрдиреЗ рдкрд░, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЗрд╕ рдЕрдкрд╡рд╛рдж рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред

рд░рдирдЯрд╛рдЗрдо рддреНрд░реБрдЯрд┐
рдзреНрдпрд╛рди рдореЗрдВ рди рдЖрдпрд╛ (рд╡рд╛рджреЗ рдореЗрдВ): рдирд┐рдХрд╛рд▓реЗрдВ рджреГрд╢реНрдп рдирд╣реАрдВ рдорд┐рд▓рд╛

рдЕрдкреЗрдХреНрд╖рд┐рддреН рд╡реНрдпрд╡рд╣рд╛рд░:

рдЬрдм рдЗрд╕ рдХреЛрдбрдмреЗрд╕ рдХреЛ v3 рдкреИрдХреЗрдЬ рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдХреЛрдб v2 рдиреЛ рдПрд░рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рд╕рдВрдмрдВрдзрд┐рдд рдХреЛрдб:

signupUser(){
    if (!this.signupForm.valid){
      console.log(this.signupForm.value);
    } else {
      this.authData.signupUser(this.signupForm.value.email, this.signupForm.value.password)
      .then(() => {
        this.nav.setRoot(HomePage);
      }, (error) => {
        this.loading.dismiss().then( () => {
          var errorMessage: string = error.message;
            let alert = this.alertCtrl.create({
              message: errorMessage,
              buttons: [
                {
                  text: "Ok",
                  role: 'cancel'
                }
              ]
            });
          alert.present();
        });
      });

      this.loading = this.loadingCtrl.create({
        dismissOnPageChange: true,
      });
      this.loading.present();
    }
  }

рдЕрдиреНрдп рд╕реВрдЪрдирд╛:

Stack trace
Error: Uncaught (in promise): removeView was not found
    at d (http://localhost:8101/build/polyfills.js:3:3991)
    at l (http://localhost:8101/build/polyfills.js:3:3244)
    at l (http://localhost:8101/build/polyfills.js:3:2930)
    at http://localhost:8101/build/polyfills.js:3:3758
    at t.invokeTask (http://localhost:8101/build/polyfills.js:3:12256)
    at Object.onInvokeTask (http://localhost:8101/build/main.js:4394:37)
    at t.invokeTask (http://localhost:8101/build/polyfills.js:3:12177)
    at n.runTask (http://localhost:8101/build/polyfills.js:3:7153)
    at a (http://localhost:8101/build/polyfills.js:3:2312)
    at <anonymous>
package.json contains

{
  "name": "ionic-hello-world",
  "version": "0.0.0",
  "author": "Ionic Framework",
  "homepage": "http://ionicframework.com/",
  "private": true,
  "scripts": {
    "clean": "ionic-app-scripts clean",
    "build": "ionic-app-scripts build",
    "ionic:build": "ionic-app-scripts build",
    "ionic:serve": "ionic-app-scripts serve"
  },
  "dependencies": {
    "@angular/common": "4.0.2",
    "@angular/compiler": "4.0.2",
    "@angular/compiler-cli": "4.0.2",
    "@angular/core": "4.0.2",
    "@angular/forms": "4.0.2",
    "@angular/http": "4.0.2",
    "@angular/platform-browser": "4.0.2",
    "@angular/platform-browser-dynamic": "4.0.2",
    "@ionic-native/core": "3.4.2",
    "@ionic-native/splash-screen": "3.4.2",
    "@ionic-native/status-bar": "3.4.2",
    "@ionic/storage": "2.0.1",
    "angularfire2": "^2.0.0-beta.8",
    "firebase": "^3.9.0",
    "ionic-angular": "3.1.0",
    "ionicons": "3.0.0",
    "rxjs": "5.1.1",
    "sw-toolbox": "3.4.0",
    "zone.js": "^0.8.5"
  },
  "devDependencies": {
    "@ionic/app-scripts": "1.3.4",
    "typescript": "~2.2.1"
  },
  "cordovaPlugins": [
    "cordova-plugin-whitelist",
    "cordova-plugin-console",
    "cordova-plugin-statusbar",
    "cordova-plugin-device",
    "cordova-plugin-splashscreen",
    "ionic-plugin-keyboard"
  ],
  "cordovaPlatforms": [
    "ios",
    {
      "platform": "ios",
      "version": "",
      "locator": "ios"
    }
  ],
  "description": "An Ionic project"
}

рдЖрдпреЛрдирд┐рдХ рдЬрд╛рдирдХрд╛рд░реА: (рдЯрд░реНрдорд┐рдирд▓/cmd рдкреНрд░реЙрдореНрдкреНрдЯ рд╕реЗ ionic info рдЪрд▓рд╛рдПрдБ рдФрд░ рдиреАрдЪреЗ рдЖрдЙрдЯрдкреБрдЯ рдкреЗрд╕реНрдЯ рдХрд░реЗрдВ):

Ionic Framework: 3.1.0
Ionic App Scripts: 1.3.4
Angular Core: 4.0.2
Angular Compiler CLI: 4.0.2
Node: 6.10.1
OS Platform: macOS Sierra
Navigator Platform: MacIntel
User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.81 Safari/537.36

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдпрджрд┐ рдЖрдк рд▓реЛрдбрд┐рдВрдЧ.рдбрд┐рд╕реНрдорд┐рд╕() рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдореИрдВ рдбрд┐рд╕рдорд┐рд╕рдСрдирдкреЗрдЬ рдЪреЗрдВрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдирд╣реАрдВ рдХрд░рддрд╛, рдЖрдк рд╢рд╛рдпрдж рдПрдХ рд╣реА рд▓реЛрдбрд┐рдВрдЧ рдХреЛ рджреЛ рдмрд╛рд░ рдЦрд╛рд░рд┐рдЬ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рд╕рднреА 31 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдпрджрд┐ рдЖрдк рд▓реЛрдбрд┐рдВрдЧ.рдбрд┐рд╕реНрдорд┐рд╕() рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдореИрдВ рдбрд┐рд╕рдорд┐рд╕рдСрдирдкреЗрдЬ рдЪреЗрдВрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдирд╣реАрдВ рдХрд░рддрд╛, рдЖрдк рд╢рд╛рдпрдж рдПрдХ рд╣реА рд▓реЛрдбрд┐рдВрдЧ рдХреЛ рджреЛ рдмрд╛рд░ рдЦрд╛рд░рд┐рдЬ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рд╕рдорд╕реНрдпрд╛ рдЬреНрдпрд╛рджрд╛рддрд░ => this.nav.setRoot(HomePage) рдХреЗ рдХрд╛рд░рдг рд╣реИ ;
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдЬрдм рд╡рд╣ рдШрдЯрдХ рдХреЛ рдкреЙрдк рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред

рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдПрдХ "рдЕрд╕реНрдерд╛рдпреА" рд╕рдорд╛рдзрд╛рди this.nav.setRoot(HomePage) рдХреЛ рдЗрд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реИ:

this.nav.insert(0,рд╣реЛрдордкреЗрдЬ);this.nav.popToRoot ();

рдЖрдк рдРрд╕рд╛ рдХрд░рдХреЗ рд╣реЛрдордкреЗрдЬ рдХреЛ рд░реВрдЯ рдкрд░ рд╕реЗрдЯ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдЖрдк рдЕрдиреНрдп рд╕рднреА рдХрдВрдкреЛрдиреЗрдВрдЯ рдХреЛ рдкреЙрдк рдХрд░ рджреЗрддреЗ рд╣реИрдВред

рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рд╣реЛ рддреЛ рдмрддрд╛рдПрдВ

рдореБрдЭреЗ рдпрд╣ рддреНрд░реБрдЯрд┐ рднреА рдорд┐рд▓реА - рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЖрдпрди-рдРрдк-рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ 1.3.6 рд╕реЗ 1.3.4 рддрдХ рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдХрд░рдиреЗ рд╕реЗ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдареАрдХ рд╣реЛ рдЧрдпрд╛ред рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдБ рдХрд┐ рдЖрдк 1.3.4 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИред

рдЖрдпрдирд┐рдХ рдЬрд╛рдирдХрд╛рд░реА:

Cordova CLI: 6.5.0 
Ionic Framework Version: 3.1.0-201704300143
Ionic CLI Version: 2.2.3
Ionic App Lib Version: 2.2.1
Ionic App Scripts Version: 1.3.4
ios-deploy version: 1.9.1 
ios-sim version: Not installed
OS: macOS Sierra
Node Version: v6.9.4
Xcode version: Xcode 8.3.2 Build version 8E2002

рдореБрдЭреЗ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рддрдм рднреА рдорд┐рд▓реА рдЬрдм рдореИрдВрдиреЗ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЛ v2.0.3 рд╕реЗ 3.0.0 рддрдХ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдФрд░ рдлрд┐рд░ рд╕реЗ v3.1.0 рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╣ рддреНрд░реБрдЯрд┐ рдлреНрд░реЗрдорд╡рд░реНрдХ v2.0.3 рдореЗрдВ рдирд╣реАрдВ рдорд┐рд▓реАред рдЗрд╕рд▓рд┐рдП рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИрдВ рдХрд┐ рдпрд╣ рд╕рдорд╕реНрдпрд╛ 3.0.0 рдпрд╛ 3.1.0 . рдХреЛ рдорд┐рд▓реА рд╣реИ
рд╢рд╛рдпрдж рдореБрдЭреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдЕрдм рдореЗрд░реА рдЖрдпрдирд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдиреАрдЪреЗ рд╣реИред

рдХреЙрд░реНрдбреЛрд╡рд╛ рд╕реАрдПрд▓рдЖрдИ: 6.4.0
рдЖрдпрдирд┐рдХ рдлреНрд░реЗрдорд╡рд░реНрдХ рд╕рдВрд╕реНрдХрд░рдг: 3.1.0
рдЖрдпреЛрдирд┐рдХ рд╕реАрдПрд▓рдЖрдИ рд╕рдВрд╕реНрдХрд░рдг: 2.1.18
рдЖрдпреЛрдирд┐рдХ рдРрдк рд▓рд┐рдм рд╕рдВрд╕реНрдХрд░рдг: 2.1.9
рдЖрдпреЛрдирд┐рдХ рдРрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрд╕реНрдХрд░рдг: 1.3.4
рдЖрдИрдУрдПрд╕-рддреИрдирд╛рддреА рд╕рдВрд╕реНрдХрд░рдг: 1.9.0
рдЖрдИрдУрдПрд╕-рд╕рд┐рдо рд╕рдВрд╕реНрдХрд░рдг: 5.0.13
рдУрдПрд╕: рдореИрдХреЛрдЬрд╝ рд╕рд┐рдПрд░рд╛
рдиреЛрдб рд╕рдВрд╕реНрдХрд░рдг: v6.9.4
Xcode рд╕рдВрд╕реНрдХрд░рдг: Xcode 8.3.2 рдмрд┐рд▓реНрдб рд╕рдВрд╕реНрдХрд░рдг 8E2002

рдиреЛрдЯ: рдореЗрд░рд╛ рдЖрдпрдирд┐рдХ рдРрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрд╕реНрдХрд░рдг 1.3.4 рднреАред

рдЕрджреНрдпрддрди, рдореБрдЭреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдорд┐рд▓ рдЧрдпрд╛ рд╣реИред (рдврд╛рдВрдЪреЗ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдирд╣реАрдВ, рдореИрдВ рдЕрднреА рднреА 3.1.0 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ)
рдореИрдВрдиреЗ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рд▓реЛрдбрд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдкрдирд╛ рдХреЛрдб рдмрджрд▓рдХрд░ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдареАрдХ рдХрд░ рджрд┐рдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

loading.present();
somePromiseMethod().then(()=>{
     loading.dismiss();
});
...

рдкреНрд░рддрд┐

loading.present().then(()=>{
   somePromiseMethod().then(()=>{
      loading.dismiss();
   });
});

рдпрд╣ рдХреНрдпреЛрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ? рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд▓реЛрдбрд┐рдВрдЧ.рдкреНрд░реЗрдЬреЗрдВрдЯ() рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рд╡рд┐рдзрд┐ рд╣реИред рдЗрд╕рд▓рд┐рдП рд╣рдо рд▓реЛрдбрд┐рдВрдЧ.рдбрд┐рд╕реНрдорд┐рд╕() рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХреЙрд▓ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрдм рд▓реЛрдбрд┐рдВрдЧ.рдкреНрд░реЗрдЬреЗрдВрдЯ() рдЕрднреА рднреА рдЪрд▓ рд░рд╣рд╛ рд╣реИред
рддреЛ рдЕрдЧрд░ рд╣рдореЗрдВ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЦрд╛рд░рд┐рдЬ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддреЛ рд╣рдореЗрдВ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рдХрд┐ рд▓реЛрдбрд┐рдВрдЧ рдкреНрд░рд╕реНрддреБрдд рдХреА рдЧрдИ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЦрд╛рд░рд┐рдЬ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ, рд╣рдореЗрдВ рд╡рд░реНрддрдорд╛рди() рдХреЗ рдмрд╛рдж рдЕрдиреНрдп рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдлрд┐рд░ рдЙрдкрд░реЛрдХреНрдд рдореЗрд░реЗ рдХреЛрдб рдХреА рддрд░рд╣ред

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдкреБрд░рд╛рдиреЗ рдврд╛рдВрдЪреЗ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг (2.0.3) рдореЗрдВ рд╣рдореЗрдВ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реИред

рд╣рд╛рдп рджреЛрд╕реНрддреЛрдВ, рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдереА рд▓реЗрдХрд┐рди рд╕рдорд╕реНрдпрд╛ рдЗрд╕рд▓рд┐рдП рдереА рдХреНрдпреЛрдВрдХрд┐ рдЕрд▓рд░реНрдЯ рд╣реИрдВрдбрд▓рд░ рд╕реЗ return false; рдЧрд╛рдпрдм рдерд╛ред
рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣ рдкреВрд░реНрд╡ рд╕рдВрд╕реНрдХрд░рдг 3.1.1 рдерд╛

let alert = this.alertCtrl.create({
            message: "message....",
            buttons: [
              {
                text: "Cancel", handler: () => {
                  alert.dismiss();
                }
              },
              {
                text: "Sign up instead?", handler: () => {
                  alert.dismiss().then(() => {
                    self.nav.pop().then(data => {
                      self.nav.push(OtherPage);
                    });
                  });
                }
              }]
          });
          alert.present();

3.1.1 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рд╣реИрдВрдбрд▓рд░реНрд╕ рдХреЛ return false; рдбрд╛рд▓рдирд╛ рдкрдбрд╝рд╛

let alert = this.alertCtrl.create({
            message: "message....",
            buttons: [
              {
                text: "Cancel", handler: () => {
                  alert.dismiss(); 
                  return false;
                }
              },
              {
                text: "Sign up instead?", handler: () => {
                  alert.dismiss().then(() => {
                    self.nav.pop().then(data => {
                      self.nav.push(OtherPage);
                    });
                  });
                  return false;
                }
              }]
          });
          alert.present();

рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХрд╣рддрд╛ рд╣реИ рдХрд┐
http://ionicframework.com/docs/api/components/alert/AlertController/

рдпрд╣рд╛рдБ рд╡рд╣реА рдореБрджреНрджрд╛! рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдореИрдВ рджреЛ рдмрд╛рд░ рд▓реЛрдбрд┐рдВрдЧ рдЦрд╛рд░рд┐рдЬ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдЕрдЧрд░ рдореИрдВ рдЗрд╕ рд▓реЛрдбрд┐рдВрдЧ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдореБрдЭреЗ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рдорд┐рд▓рддреА рд╣реИред

getPosts() {
        if(this.loading != undefined){
            this.loading.dismiss();
        }

        this.loading = this.loadingCtrl.create({
            spinner: 'bubbles',
            content: 'Please wait...'
        });

        this.loading.present();
        return this.http.get(this.baseUrl + 'articles.php')
            .toPromise().then((result: Response) => {
                const data = result.json();
                this.articleRepo = data;
                if (this.items == undefined) {
                    this.updateItems(10, 0).then((err) => {
                        this.loading.dismiss();
                    });
                }else{
                    this.loading.dismiss();
                }
                return data;
            }).catch((err) => {
                this.loading.dismiss();
            });
    }
Your system information:

 ordova CLI: 6.3.1
Ionic Framework Version: 3.1.1
Ionic CLI Version: 2.1.8
Ionic App Lib Version: 2.1.4
Ionic App Scripts Version: 1.3.6
ios-deploy version: Not installed
ios-sim version: Not installed
OS: Windows 10
Node Version: v6.10.1
Xcode version: Not installed

рд╣рд╛рдп xap5xap, рдХреНрдпрд╛ рдЖрдк рдЕрд▓рд░реНрдЯ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЦрд╛рд░рд┐рдЬ (), рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рддреЛ рдЖрдкрдХрд╛ рдХреЛрдб рдЗрд╕ рддрд░рд╣ рд╣реЛрдЧрд╛ред

text: "Sign up instead?", handler: () => {
      self.nav.pop().then(data => {
            self.nav.push(OtherPage);
       });
}

рд╣рд╛рдп uzumakinaruto123, рдХреНрдпрд╛ рдЖрдк рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж .then() рдЬреЛрдбрд╝рдХрд░ рдЕрдкрдирд╛ рдХреЛрдб рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╡рд░реНрддрдорд╛рди (), рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рддреЛ рдЖрдкрдХрд╛ рдХреЛрдб рдЗрд╕ рддрд░рд╣ рд╣реЛрдЧрд╛ред

this.loading.present().then(()=>{
     return this.http.get(this.baseUrl + 'articles.php')
     ...(your code)
});

Could you try to revise your code by add .then() after loading.present(), it works for me.
^ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рддрд╛ рд╣реИ, рдзрдиреНрдпрд╡рд╛рджред

рд╣реИрд▓реЛ рд╕рднреА рдХреЛ! рдЪреВрдВрдХрд┐ рдпрд╣ рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдПрдХ рд╕рдорд░реНрдерди рдкреНрд░рд╢реНрди рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ, рдореИрдВ рдЖрдкрд╕реЗ рдЖрдЧреНрд░рд╣ рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдЖрдк рдЗрд╕ рдкреНрд░рд╢реНрди рдХреЛ рд╣рдорд╛рд░реЗ рдордВрдЪ рдпрд╛ рд╣рдорд╛рд░реЗ [slack channel](https://ionicworldwide.herokuapp.com/] рдкрд░ рд▓реЗ рдЬрд╛рдПрдВред Ionic рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

рд▓реЛрдбрд░ рдХреЛ рдЕрд╢рдХреНрдд рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддреНрд╡рд░рд┐рдд рд╕реБрдзрд╛рд░ рд╣реЛрдЧрд╛ред
if(this.loader){ this.loader.dismiss(); this.loader = null; }

рдпрд╣ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдареАрдХ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдпреЗ рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ :
рдпрд╣ред рд▓реЛрдбрд░ред рдЦрд╛рд░рд┐рдЬ ();
рд╕реЗрдЯрдЯрд╛рдЗрдордЖрдЙрдЯ (() => {
this.nav.setRoot ('рд╣реЛрдо');
});

рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ :)

рдорд╛рдлрд╝ рдХрд░рдирд╛ред рдореЗрд░реА рдореВрд▓ рдЯрд┐рдкреНрдкрдгреА рдЧрд▓рдд рдереА, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ред рдореЗрд░рд╛ рдЕрд▓рд░реНрдЯ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рдерд╛, рд▓реЗрдХрд┐рди рдмрд╛рдж рдХреЗ рд▓реЛрдбрд┐рдВрдЧ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдерд╛, рдФрд░ рдЗрд╕реЗ ngAfterContentChecked рдкрд░ рд╣рдЯрд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦреА рдЧрдИ рд╡рд░реНрддрдорд╛рди рд╡рд┐рдзрд┐рдпрд╛рдВ рдЕрднреА рднреА рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдХрд╛рд░рдг рдмрдирддреА рд╣реИрдВ:

````
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╢реЛ рд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рд╣реИ (рд╕рдВрджреЗрд╢) {
this.loadingObject = this.loading.create ({рд╕рд╛рдордЧреНрд░реА: рд╕рдВрджреЗрд╢, рдЦрд╛рд░рд┐рдЬ рдХрд░реЗрдВрдСрдирдкреЗрдЬ рдЪреЗрдВрдЬ: рдЭреВрдард╛});
this.loadingObject.рд╡рд░реНрддрдорд╛рди ();
рдЗрд╕реЗ рд╡рд╛рдкрд╕ рдХрд░реЗрдВред рд▓реЛрдбрд┐рдВрдЧрдСрдмреНрдЬреЗрдХреНрдЯ;
}

public dismissLoading() {
    if (this.loadingObject) {
        try {
            this.loadingObject.dismiss();
        }
        catch (exception) {

        }
        this.loadingObject = null;
    }
}

````
рдпреЗ рдПрдХ рд╕реЗрд╡рд╛ рдореЗрдВ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рдХреНрдпрд╛ рдЧрд▓рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЖрдпрдирд┐рдХ 2 рд╕реЗ рдЖрдпрдирд┐рдХ 3 рдореЗрдВ рдЬрд╛рдиреЗ рддрдХ рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рдереАред рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕рдХрд╛ рдкреГрд╖реНрда рдиреЗрд╡рд┐рдЧреЗрд╢рди рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рд╣реИред

рдореБрдЭреЗ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдереА ... рдЬрдм рддрдХ рдореИрдВрдиреЗ рдпрд╣ рдирд╣реАрдВ рдкрд╣рдЪрд╛рдирд╛ рдХрд┐ рдиреЗрд╕реНрдЯреЗрдб рдбреЛрдо рддрддреНрд╡реЛрдВ рдкрд░ рдмрд╛рдзреНрдпрдХрд╛рд░реА (рдХреНрд▓рд┐рдХ) = "рдХреЙрд▓рдмреИрдХ ()" рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдХрд╛рд░рдг рдмрди рд░рд╣рд╛ рдерд╛!

рдЙрджрд╛рд╣рд░рдг - рдореЛрдбрд▓ рд╕рдВрд╡рд╛рдж рдХреА рд╕рд╛рдордЧреНрд░реА:

<ion-item detail-none *virtualItem="let unsentOffer" (click)="selectOffer(unsentOffer)">
      <ion-grid no-padding>
        <ion-row>
          <ion-col>
            <div class="project-name ellipsis line-count-1" (click)="selectOffer(unsentOffer)"><span ion-text text-bold>{{unsentOffer.description}}</span>
            </div>
            <div class="customer-name ellipsis line-count-1"><span ion-text>{{unsentOffer.firstNameLastName}}</span>
            </div>
          </ion-col>
        </ion-row>
      </ion-grid>
</ion-item>

рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рд╕рдВрд╡рд╛рдж рдХреЛ selectOffer() рдореЗрдВ рдЦрд╛рд░рд┐рдЬ рдХрд░рддреЗ рд╣реИрдВ - рдЗрд╕реЗ рджреЛ рдмрд╛рд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ - рджреВрд╕рд░рд╛ "рдирд┐рдХрд╛рд▓реЗрдВ рджреГрд╢реНрдп рдирд╣реАрдВ рдорд┐рд▓рд╛" рдХреЗ рд╕рд╛рде рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ ...

рдореИрдВрдиреЗ рдЗрд╕ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣рд▓ рдХрд┐рдпрд╛ред
this.loading.dismissAll();

рдореИрдВрдиреЗ рдХреЙрд▓рдмреИрдХ рдлрд╝рдВрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ рд╣реИ, рджреЗрдЦреЗрдВ:
this.viewCtrl.dismiss().then(()=>{
this.events.publish("goto", TabsPage,null,{root:true});
});

рдХреЙрд▓рдмреИрдХ рдлрд╝рдВрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ

рдЬрдм рдЖрдк рддреНрд╡рд░рд┐рдд рдЙрддреНрддрд░рд╛рдзрд┐рдХрд╛рд░ рдореЗрдВ рдХрдИ рдмрд╛рд░ рдПрдХреНрд╢рдирд╢реАрдЯ рдпрд╛ рдореЛрдбрд▓ рдЦреЛрд▓рддреЗ рд╣реИрдВ рддреЛ рдореБрдЭреЗ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд░рд╣реА рд╣реИред рдФрд░ рд╡реЗ рд╡рд┐рднрд┐рдиреНрди рд╕реНрд░реЛрддреЛрдВ рд╕реЗ рдЦреЛрд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВред рдЖрдк рдЙрд╕ рдкрд░ рдлрд┐рдХреНрд╕ рдХреЛ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЦрд╛рд╕рдХрд░ рдЬрдм рдЖрдпреЛрдиреА рдПрдХреНрд╢рди рд╢реАрдЯ рдкрд░ рджреГрд╢реНрдп рд╣рддреНрдпрд╛ рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИред

_рдореВрд▓ рдореБрджреНрджреЗ рдкрд░, рдФрд░ рдЗрд╕реА рддрд░рд╣ рдХреЗ рдЕрдиреНрдп рдореБрджреНрджреЛрдВ рдкрд░ред рдЗрд╕ рдкрдврд╝реЗрдВ_

screen shot 2017-10-01 at 9 07 14 am

рдКрдкрд░ рд▓реЛрдбрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рд▓рд┐рдП рдХреЛрдб рд╣реИред рдЙрд╕ рдХреЛрдб рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ рдЬреЛ рдЙрд╕ рдкреГрд╖реНрда рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдПрдирд┐рдореЗрд╢рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред рдпрд╣ рд╡рд┐рднрд┐рдиреНрди рдШрдЯрдХреЛрдВ рдкрд░ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЖрдорддреМрд░ рдкрд░, рдпрд╣ рдЗрд╕ рдмрд╛рдд рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдкреГрд╖реНрда рдкрд░ рдШрдЯрдХ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛рдВ рд╕реЗрдЯ рдХрд┐рдпрд╛ рд╣реИред

рдпрд╣ рд╡рд╣ рдХреЛрдб рд╣реИ рдЬреЛ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ
screen shot 2017-10-01 at 9 23 35 am

рд▓реЛрдбрдХрдВрдЯреНрд░реЛрд▓рд░ _why?_ рдХреЛ рдЦрд╛рд░рд┐рдЬ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реБрдП рдХреЛрдб рдЕрдВрддрд┐рдо рднрд╛рдЧ рдкрд░ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ

рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рд╕реЗрдЯрд░реВрдЯ () рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рдиреЗрд╡рд┐рдЧреЗрд╢рди рд╕реНрдЯреИрдХ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЕрдм рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕рд╛рдЗрдирдЕрдк рдкреЗрдЬ рддрдХ рдкрд╣реБрдВрдЪ рдирд╣реАрдВ рд╣реИред рдПрдирдПрд╡реА рд╕реНрдЯреИрдХ рдореЗрдВ рдПрдХрдорд╛рддреНрд░ рдкреЗрдЬ рд╣реЛрдордкреЗрдЬ рд╣реИред рдпрд╣ рд╡рд╣ рдкреГрд╖реНрда рд╣реИ рдЬрд╣рд╛рдБ рд╕реЗ рдПрдирд┐рдореЗрд╢рди рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП

рдмрд░реНрдЦрд╛рд╕реНрддрдЧреА рд╕рдордп рдХреЛ рд▓рдЧрднрдЧ 1000ms рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рдЗрд╕рд╕реЗ рдЗрд╕реЗ рд╣реЛрдордкреЗрдЬ рдкрд░ рдиреЗрд╡рд┐рдЧреЗрд╢рди рд╕реНрдЯреИрдХ рдкрд░ рд╕рд╣реА рдЫреЛрдбрд╝рдиреЗ рд╡рд╛рд▓реЗ рдкреГрд╖реНрда рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдиреЗ рдФрд░ рд╢рд╛рди рд╕реЗ

рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рдЗрд╕рдХреА рддрд╣ рддрдХ рдЬрд╛рдПрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХрд╖реНрдЯрдкреНрд░рдж рд╣реИ рдФрд░ рддреНрд░реБрдЯрд┐ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд░реВрдк рд╕реЗ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реЛрддреА рд╣реИред рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдореИрдВ рддреЗрдЬреА рд╕реЗ рдЯреИрдм рдмрджрд▓ рд░рд╣рд╛ рд╣реЛрддрд╛ рд╣реВрдВред рдореЗрд░рд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдирд┐рджрд╛рди рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рджреМрдбрд╝ рдХреА рд╕реНрдерд┐рддрд┐ рд╣реЛрдиреЗ рдХреА рдмрд╣реБрдд рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред

рдореЗрд░рд╛ рд╕рдорд╛рдзрд╛рди рдЦрд╛рд░рд┐рдЬ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдПрдХ рдХреИрдЪ рдЬреЛрдбрд╝рдирд╛ рд╣реИ:

  this.loading.dismiss().catch()

рдЕрднреА рддрдХ рддреЛ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред

рдореИрдВрдиреЗ рдЙрди рдпреБрдХреНрддрд┐рдпреЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА, рд╕рдорд╕реНрдпрд╛ рдЕрднреА рднреА рджрд┐рдЦ рд░рд╣реА рд╣реИред
рдореИрдВ @kaceo рд╕реЗ рд╕рд╣рдордд

рдЙрджрд╛рд╣рд░рдг:

setTimeout(() => {
        this.getData().subscribe(res => {
          this.loader.dismiss();
          this.items = res.docs;
        }, err => {
          this.loader.dismiss();
          console.log(err);
        });
      }, 100);

рдореБрдЭреЗ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдорд┐рд▓реА рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ред

  1. рдореИрдВрдиреЗ рд▓реЛрдбрд░ рд╣реИрдВрдбрд▓рд░ рдХреЗ рд▓рд┐рдП рдмреНрд▓реЙрдХ рдХреЛрдб рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХреА рд╣реИ -> рддреНрд░реБрдЯрд┐ рдЦрд╛рд░рд┐рдЬ рдФрд░ рдЕрдм рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред
  2. рдореИрдВ рдЕрдкрдиреЗ рдореВрд▓ рдХреЛрдб рдкрд░ рд╡рд╛рдкрд╕ рдЧрдпрд╛ рдФрд░ рдлрд┐рд░ рдореИрдВрдиреЗ рдПрдХ рдЯрд╛рдЗрдордСрдЯ рдЬреЛрдбрд╝рд╛ рд╣реИ -> рдЕрдм рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рдореИрдВрдиреЗ рдпрд╣ рдХреЛрдб рдЬреЛрдбрд╝рд╛ рд╣реИ

setTimeout(()=>{
  // Here Code
})

рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо!

рд╡рд╣реА рддреНрд░реБрдЯрд┐ рдкреЙрдк рдЕрдк рд╣реЛ рд░рд╣реА рдереАред "рдирд┐рдХрд╛рд▓реЗрдВ рджреГрд╢реНрдп рдирд╣реАрдВ рдорд┐рд▓рд╛"

рдпрд╣рд╛рдБ рдореЗрд░рд╛ рдорд╛рдорд▓рд╛ рд╣реИ рдФрд░ рдореИрдВрдиреЗ рдЗрд╕реЗ рдХреИрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛:
рд╕рдорд╕реНрдпрд╛ рдпрд╣ рдереА рдХрд┐ рдореЗрд░рд╛ рд▓реЛрдбрд░ рд╣рдореЗрд╢рд╛ рдкрд╣рд▓реА рдмрд╛рд░ рдХреЙрд▓ рдХрд░рдиреЗ рдкрд░ рд╣реА рджрд┐рдЦрд╛рддрд╛ рдерд╛ред рджреВрд╕рд░реА рдмрд╛рд░ рдЬрдм рдореБрдЭреЗ рдЗрд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рдкрдбрд╝рд╛, рддреЛ рддреНрд░реБрдЯрд┐ рд╕рд╛рдордиреЗ рдЖрдИ рдФрд░ рдРрдк рдХреНрд░реИрд╢ рд╣реЛ рдЧрдпрд╛ред

рдореИрдВ рдЕрдкрдиреЗ рд▓реЛрдбрд░ рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рдЗрдВрд╕реНрдЯреЗрдВрдЯ рдХрд░ рд░рд╣рд╛ рдерд╛ ...

public loading: Loading;
constructor(...){
    this.loading = this.loadingCtrl.create({ });

}

рдореИрдВрдиреЗ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рд▓реЛрдбрд░ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╣рдореЗрд╢рд╛ this.loading = this.loadingCtrl.create({ }); рдХреЙрд▓ рдХрд░рдХреЗ рддреНрд░реБрдЯрд┐ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ред

рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕реЗ рдЕрднреА рдХреЗ рд▓рд┐рдП рдЪреБрди рд░рд╣рд╛ рд╣реВрдВред рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдк рдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреА рднреА рдорджрдж рдХрд░рддрд╛ рд╣реИред

рдпрд╣ рдПрдХ рдкрд╛рдЧрд▓ рдореБрджреНрджрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдпреЛрдирд┐рдХ рдЯреАрдо рджреНрд╡рд╛рд░рд╛ "рд╕рдорд░реНрдерди" рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ!

LoadingController рд╣реА * Cking рдПрдХ рд╕рд░рд▓ рдЪ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП if рдкрд░ dismiss() рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдПред

рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдХрд╛рд░рдг, рд╣рдореЗрдВ LoadingProvider рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдкрд░реЗрд╢рд╛рди рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╣реИред

рдЬрдм рднреА рдореИрдВ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдмреИрдХ рдмрдЯрди рджрдмрд╛рддрд╛ рд╣реВрдВ, рдореБрдЭреЗ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдореЗрд░реЗ рдкреАрдбрдмреНрд▓реВрдП рдореЗрдВ рдорд┐рд▓рддреА рд╣реИред NavBar рдмреИрдХ рдмрдЯрди рдареАрдХ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред
рдореИрдВ рд▓реЛрдбрд┐рдВрдЧ рдирд┐рдпрдВрддреНрд░рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ:
loading.present().then(()=>{ //code to retrieve data; loading.dismiss(); });

рддреЛ рдкреВрд░рд╛ рдХреЛрдб if(loading){ loading.dismiss(); loading = undefined } рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП

@kaceo рд╡рд┐рдзрд┐ рддрдм рддрдХ рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХ рд░рд╣реА рдереА рдЬрдм рддрдХ рдореИрдВрдиреЗ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛

loader.dismiss().catch(()=>{})

рдпрд╣рд╛рдБ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ https://github.com/ionic-team/ionic/issues/11776#issuecomment -314050068

рдмрд╕ рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ

`
рдЖрдпрд╛рдд {рдРрдк} 'рдЖрдпрдирд┐рдХ-рдХреЛрдгреАрдп' рд╕реЗ;
рдПрдХреНрд╕рдкреЛрд░реНрдЯ рдХреНрд▓рд╛рд╕ рдкреЙрдкрдУрд╡рд░рдкреЗрдЬ {
рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ (рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ navCtrl: NavController, public appCtrl: рдРрдк) {}

this.viewCtrl.dismiss().then(()=>{
рд╕реЗрдЯрдЯрд╛рдЗрдордЖрдЙрдЯ (() => {
рдкреБрд╖реНрдЯрд┐ рдХрд░реЗрдВред рдЦрд╛рд░рд┐рдЬ ()ред рддрдм (() => {
this.appCtrl.getRootNav ()ред рд╕реЗрдЯрд░реВрдЯ ('рдбреИрд╢рдмреЛрд░реНрдбрдкреЗрдЬ');
})
},300)
})
}
`

рдпрд╣

this.loading.present().then( x=> { this.dataProvider.getData("assets/data/persons.json").subscribe((data: Array<Object>) => { this.fullPersonsList = data; this.filteredPersonsList = data; this.loading.dismiss().catch(() =>{}); });
});

рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛

рдпрд╣ рд╕рд┐рд░реНрдл рд╣рд╛рд╕реНрдпрд╛рд╕реНрдкрдж рд╣реИред рдореИрдВрдиреЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рдлрд▓рддрд╛ рдХреЗ рдпрд╣рд╛рдВ рд╕реВрдЪреАрдмрджреНрдз рд╣рд░ рд╕рдорд╛рдзрд╛рди рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВ рдЕрдкрдирд╛ рд▓реЙрдЧрд┐рди рдкреЗрдЬ рдПрдХ рдореЛрдбрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░ рд░рд╣рд╛ рдерд╛ред рддреЛ рдореЗрд░реА рд╕рд╛рдЗрдбрдмрд╛рд░ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд░рдЦрддреЗ рд╣реБрдП рдЗрд╕реЗ рдмрдВрдж рдХрд░рдиреЗ рдХрд╛ рдореЗрд░рд╛ рд╕рдорд╛рдзрд╛рди рдерд╛:
window.location.reload();
рдмрд╣реБрдд рд▓рдВрдЧрдбрд╝рд╛...

@EduardoIbarra , @theo4u рдХреЗ рд╕рдорд╛рдзрд╛рди рдиреЗ рдХрд╛рдо рдХрд┐рдпрд╛

рдореБрджреНрджреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! рдореВрд▓ рдореБрджреНрджреЗ рд╕реЗ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдирд╣реАрдВ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд▓реЙрдХ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдпрджрд┐ рдпрд╣ рдЕрднреА рднреА Ionic рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдмрдирд╛рдПрдВ рдФрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЯреЗрдореНрдкрд▓реЗрдЯ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рднрд░рд╛ рд╣реБрдЖ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

fdnhkj picture fdnhkj  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

BilelKrichen picture BilelKrichen  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

masimplo picture masimplo  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

brandyscarney picture brandyscarney  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

alan-agius4 picture alan-agius4  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ