Ionic λ²μ : ("x"λ‘ νλ μ ν)
[ x] 3.x
μ μΆ μ€μ
λλ€
[x ] λ²κ·Έ λ³΄κ³ μ
νμ¬ νλ:
μ΄λ©μΌκ³Ό λΉλ°λ²νΈ 2κ°μ νλκ° μλ κ°μ
μμμ΄ μμΌλ©΄ μ¬μ©μκ° μ±κ³΅μ μΌλ‘ μμ±λμ§λ§ μ΄ μμΈκ° λ°μν©λλ€.
λ°νμ μ€λ₯
μ‘νμ§ μμ(μ½μ μ€): removeViewλ₯Ό μ°Ύμ μ μμ΅λλ€.
μμλλ λμ:
μ΄ μ½λλ² μ΄μ€κ° v3 package.jsonμΌλ‘ μ
κ·Έλ μ΄λλλ©΄ μ½λλ 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"
}
Ionic μ 보: (ν°λ―Έλ/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
loading.dismiss()λ₯Ό μλμΌλ‘ νΈμΆνλ κ²½μ°μλdismissOnPageChangeλ₯Ό μ¬μ©νμ§ μλ κ²μ΄ μ’μ΅λλ€. μλ§λ λμΌν λ‘λ©μ λ λ² ν΄μ νλ κ²μ λλ€.
λ¬Έμ λ μ£Όλ‘ => this.nav.setRoot(HomePage) λ‘ μΈν΄ λ°μν©λλ€.
λλ κ·Έκ° κ΅¬μ± μμλ₯Ό νμ
νκ³ μΆμ λ λ¬Έμ κ° μλ€κ³ μκ°ν©λλ€.
μ΄ λ¬Έμ μ λν "μμ" μ루μ μ€ νλλ this.nav.setRoot(HomePage)λ₯Ό λ€μκ³Ό κ°μ΄ λ°κΎΈλ κ²μ λλ€.
this.nav.insert(0,ννμ΄μ§);this.nav.popToRoot();
κ·Έλ κ²ν¨μΌλ‘μ¨ ννμ΄μ§λ₯Ό 루νΈλ‘ μ€μ νκ³ λ€λ₯Έ λͺ¨λ κ΅¬μ± μμλ₯Ό νν©λλ€.
λ¬Έμ κ° μμΌλ©΄ λ§ν΄μ€
μ΄ μ€λ₯λ λ°μνμ΅λλ€. κ·Έλ¬λ ion-app-scriptsλ₯Ό 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μμ λ°κ²¬λμλμ§ νμ€νμ§ μμ΅λλ€.
μ΄ λ¬Έμ λ₯Ό ν΄κ²°νλ €λ©΄ λ€μ΄κ·Έλ μ΄λν΄μΌ ν μλ μμ΅λλ€.
μ΄μ λ΄ μ΄μ¨ μ λ³΄κ° μλμ μμ΅λλ€.
μ½λ₯΄λλ° CLI: 6.4.0
Ionic νλ μμν¬ λ²μ : 3.1.0
Ionic CLI λ²μ : 2.1.18
Ionic μ± λΌμ΄λΈλ¬λ¦¬ λ²μ : 2.1.9
Ionic μ± μ€ν¬λ¦½νΈ λ²μ : 1.3.4
iOS λ°°ν¬ λ²μ : 1.9.0
ios-sim λ²μ : 5.0.13
OS: macOS μμλΌ
λ Έλ λ²μ : v6.9.4
Xcode λ²μ : Xcode 8.3.2 λΉλ λ²μ 8E2002
μ°Έκ³ : λ΄ ionic μ± μ€ν¬λ¦½νΈ λ²μ λ 1.3.4μ λλ€.
μ
λ°μ΄νΈ, μ΄ λ¬Έμ λ₯Ό ν΄κ²°νλ λ°©λ²μ μ°Ύμμ΅λλ€. (νλ μμν¬ λ²μ μ λ€μ΄κ·Έλ μ΄λνμ§ μκ³ μ¬μ ν 3.1.0μ μ¬μ©ν©λλ€)
μλμ κ°μ΄ λ‘λμ λν μ½λλ₯Ό λ³κ²½νμ¬ μ΄ λ¬Έμ λ₯Ό ν΄κ²°νμΌλ©° μ μκ² ν¨κ³Όμ μ
λλ€.
loading.present();
somePromiseMethod().then(()=>{
loading.dismiss();
});
...
μκ²
loading.present().then(()=>{
somePromiseMethod().then(()=>{
loading.dismiss();
});
});
μ μλν©λκΉ? loading.present()κ° λΉλκΈ°μ λ©μλμ΄κΈ° λλ¬Έμ loading.present()κ° μμ§ μ€ν μ€μΌ λ μλμΌλ‘ loading.dismiss()λ₯Ό νΈμΆν μ μλ€κ³ μκ°ν©λλ€.
λ°λΌμ μλμΌλ‘ ν΄μ ν΄μΌ νλ κ²½μ° λ‘λκ° νμλκ³ ν΄μ ν μ μλ λ³΄κΈ°κ° μλμ§ νμΈν΄μΌ ν©λλ€. μμ λ΄ μ½λμ κ°μ΄ present().then λ€μμ λ€λ₯Έ λ©μλλ₯Ό μ¬μ©ν΄μΌ ν©λλ€.
κ·Έλ¬λ μ΄μ νλ μμν¬ λ²μ (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, alert.dismiss()λ₯Ό μ κ±°ν΄ μ£Όμκ² μ΅λκΉ? μ μκ² ν¨κ³Όμ μ λλ€. λ°λΌμ κ·νμ μ½λλ λ€μκ³Ό κ°μ κ²μ λλ€.
text: "Sign up instead?", handler: () => {
self.nav.pop().then(data => {
self.nav.push(OtherPage);
});
}
μλ νμΈμ uzumakinaruto123, loading.present() νμ .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μ μ¬μ©ν΄ μ£Όμ μ κ°μ¬ν©λλ€!
λΉ λ₯Έ μμ μ λ‘λλ₯Ό nullλ‘ λ§λλ κ²μ
λλ€.
if(this.loader){
this.loader.dismiss();
this.loader = null;
}
κ·Έλ¬λ©΄ λ¬Έμ κ° ν΄κ²°λ©λλ€.
μ΄ μλ :
this.loader.dismiss();
setTimeout(() => {
this.nav.setRoot('ν');
});
κ·Έκ²μ λλ₯Ό μν΄ μΌνκ³ μμ΅λλ€ :)
μ£μ‘ν©λλ€. μλ λκΈμ΄ μλͺ»λμ΄μ μμ νμ΅λλ€. κ΄μ°μ κ²½κ³ μ κ΄λ ¨μ΄ μμ§λ§ νμ λ‘λ μΈμ€ν΄μ€μ κ΄λ ¨μ΄ μμΌλ©° ngAfterContentCheckedμμ κ²½κ³ λ₯Ό μ κ±°νλ €λ μλμ λλ€.
λ΄κ° μμ±ν νμ¬ λ°©λ²μ μ¬μ ν ββμ΄ λ¬Έμ λ₯Ό μΌμΌ ν΅λλ€.
````
κ³΅κ° μΌλ‘λ©(λ©μμ§) {
this.loadingObject = this.loading.create({λ΄μ©: λ©μμ§, ν΄μ OnPageChange: false});
this.loadingObject.present();
this.loadingObjectλ₯Ό λ°νν©λλ€.
}
public dismissLoading() {
if (this.loadingObject) {
try {
this.loadingObject.dismiss();
}
catch (exception) {
}
this.loadingObject = null;
}
}
````
μ΄λ€μ μλΉμ€λ‘ μ 곡λ©λλ€. μ¬κΈ°μ 무μμ΄ μλͺ»λ μ μλμ§ μ λͺ¨λ₯΄κ² μ΅λλ€. ionic 2μμ ionic 3μΌλ‘ μ΄λνκΈ° μ κΉμ§λ νμ€ν λ¬Έμ κ° λμ§ μμμ΅λλ€. νμ΄μ§ νμκ³Όλ μ ν κ΄λ ¨μ΄ μμ΅λλ€.
μ€μ²©λ dom μμμ λν λ°μΈλ© (click)="callback()"μ΄ μ΄ λ¬Έμ μ μμΈμμ μΈμν λκΉμ§ λμΌν λ¬Έμ κ° μμμ΅λλ€.
μ - λͺ¨λ¬ λν μμμ λ΄μ©:
<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()μμ λν μμλ₯Ό λ«μΌλ©΄ λ λ² νΈμΆλ©λλ€. λ λ²μ§Έ λν μμλ "removeViewλ₯Ό μ°Ύμ μ μμ΅λλ€"μ μΆ©λν©λλ€...
μ΄ λ°©λ²μ μ¬μ©νμ¬ λ€μμ ν΄κ²°νμ΅λλ€.
this.loading.dismissAll();
μ½λ°± ν¨μλ‘ μ΄ λ¬Έμ λ₯Ό ν΄κ²°νμ΅λλ€. λ€μμ μ°Έμ‘°νμΈμ.
this.viewCtrl.dismiss().then(()=>{
this.events.publish("goto",TabsPage,null,{root:true});
});
μ½λ°± ν¨μλ‘ μλ
μμ μνΈ λλ λͺ¨λ¬μ μ°μν΄μ μ¬λ¬ λ² μ΄ λ μ΄ λ¬Έμ κ° λ°μν©λλ€. κ·Έλ¦¬κ³ κ·Έλ€μ λ€λ₯Έ μΆμ²μμ μ΄λ¦½λλ€. νΉν ioniκ° μ‘μ μνΈμμμ κ°μ΄ λ·° ν¬λ§μ μ²λ¦¬ν λ μμ μ¬νμ μ΄λ»κ² μ μ©ν μ μμ΅λκΉ?
_μλ³Έ λ° κΈ°ν μ μ¬ν λ¬Έμ μ λν΄. μ½μ΄λ³΄μΈμ_
μλ loadController μ λν μ½λμ λλ€. μ λλ©μ΄μ μ μννκΈ° μν΄ μ΄λ μ€μΈ νμ΄μ§μ μ‘μΈμ€νλ €κ³ μλνλ μ½λμ μ£Όλͺ©νμμμ€. μ΄κ²μ λ€λ₯Έ κ΅¬μ± μμμμ λ°μνλ©° μΌλ°μ μΌλ‘ νμ΄μ§μμ κ΅¬μ± μμλ₯Ό νμνλλ‘ μ€μ ν μμΉμ λ°λΌ λ€λ¦ λλ€.
μ΄κ²μ μ€ν¨νλ μ½λμ
λλ€
λ§μ§λ§ λΆλΆμμ μ½λκ° μ€ν¨νμ¬ loadController _why?_λ₯Ό
setRoot()λ₯Ό νΈμΆνμ¬ νμ μ€νμ μ¬μ€μ νκ³ λ μ΄μ λ±λ‘ νμ΄μ§μ μ‘μΈμ€ν μ μκΈ° λλ¬Έμ λλ€. νμ μ€νμ μ μΌν νμ΄μ§λ ννμ΄μ§μ λλ€. μ΄κ²μ μ λλ©μ΄μ μ΄ λ°μν΄μΌ νλ νμ΄μ§μ λλ€.
ν΄μ μκ°μ μ½ 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);
λλ κ°μ λ¬Έμ λ₯Ό λ°κ²¬νκ³ μ΄κ²μΌλ‘ ν μ€νΈνμ΅λλ€.
μ΄ μ½λλ₯Ό μΆκ°νμ΅λλ€
setTimeout(()=>{
// Here Code
})
λ μν΄ μΌν΄!
κ°μ μ€λ₯κ° λ¨λκ΅°μ. "removeViewλ₯Ό μ°Ύμ μ μμ΅λλ€"
λ΄ κ²½μ°μ ν΄κ²° λ°©λ²μ λ€μκ³Ό κ°μ΅λλ€.
λ¬Έμ λ λ΄ λ‘λκ° νμ μ²μ νΈμΆλ λλ§ νμλλ€λ κ²μ
λλ€. λ λ²μ§Έλ‘ νμν΄μΌ ν λ μ€λ₯κ° λ°μνκ³ μ±μ΄ λ€μ΄λμμ΅λλ€.
λλ μ΄μ κ°μ΄ μμ±μμμ λ΄ λ‘λλ₯Ό μΈμ€ν΄μ€ννκ³ μμμ΅λλ€ ...
public loading: Loading;
constructor(...){
this.loading = this.loadingCtrl.create({ });
}
μμ±μμμ ν λ²λ§ λμ λ‘λλ₯Ό νμνκΈ° μ μ νμ this.loading = this.loadingCtrl.create({ });
νΈμΆνμ¬ μ€λ₯λ₯Ό μ κ±°νμ΅λλ€.
μ΄κ²μ΄ μ΅μ μ λ°©λ²μΈμ§ νμ€νμ§ μμ§λ§ μ§κΈμ μ ννκ³ μμ΅λλ€. κ·Έκ²μ΄ λΉμ μ€ μΌλΆμκ² λμμ΄λκΈ°λ₯Ό λ°λλλ€.
μ΄κ²μ Ionic νμμ "μ§μ"μΌλ‘ νμλ λ―ΈμΉ λ¬Έμ μ λλ€!
μ΄ λ¬Έμ λ₯Ό λ°©μ§νλ €λ©΄ LoadingController μ체μ dismiss()
μ κ°λ¨ν if
κ° μμ΄μΌ ν©λλ€.
μ΄ λ¬Έμ λ‘ μΈν΄ LoadingProvider
λ₯Ό μ μ§ν΄μΌ ν©λλ€. μ΄ λ¬Έμ λ μ±κ°μλ€.
λΈλΌμ°μ λ€λ‘ λ²νΌμ λλ₯Ό λλ§λ€ λ΄ PWAμμ μ΄ λ¬Έμ κ° λ°μν©λλ€. 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
λ¨μ§ μλ
`
'ionic-angular'μμ { μ±} κ°μ Έμ€κΈ°;
λ΄λ³΄λ΄κΈ° ν΄λμ€ PopoverPage {
μμ±μ(κ³΅κ° navCtrl: NavController, κ³΅κ° appCtrl: μ±) {}
this.viewCtrl.dismiss().then(()=>{
setTimeout(()=>{
νμΈ.dismiss().then(()=>{
this.appCtrl.getRootNav().setRoot('λμ보λ νμ΄μ§');
})
},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μμ λ¬Έμ κ° λλ κ²½μ° μ λ¬Έμ λ₯Ό λ§λ€κ³ ν νλ¦Ώμ΄ μμ ν μ±μμ‘λμ§ νμΈνμμμ€.
κ°μ₯ μ μ©ν λκΈ
loading.dismiss()λ₯Ό μλμΌλ‘ νΈμΆνλ κ²½μ°μλdismissOnPageChangeλ₯Ό μ¬μ©νμ§ μλ κ²μ΄ μ’μ΅λλ€. μλ§λ λμΌν λ‘λ©μ λ λ² ν΄μ νλ κ²μ λλ€.