typescript 如何从 Ionic 中的其他页面访问 app.component 变量和方法?

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/46414773/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-10-21 04:55:24  来源:igfitidea点击:

How to access the app.component variables and methods from other pages in Ionic?

angulartypescriptionic-frameworkionic3

提问by Dr. X

I want to access and change app.component.tsvariable or access methods from other pages (otherpage.ts) or other components such as;

我想app.component.ts从其他页面 ( otherpage.ts) 或其他组件访问和更改变量或访问方法,例如;

app.component.ts

app.component.ts

@Component({
  templateUrl: 'app.html'
})
export class MyApp {

  accessedVariable: any;

  constructor(){ }

  accessedMethod() {
   ..something
  }

}

otherpage.ts

其他页面.ts

@Component({
  selector: 'page-other',
  templateUrl: './otherpage.html',
})
export class OtherPage {

  constructor() { }
}

回答by Sampath

18-02-2020

18-02-2020

Please don't use Event emitter. Use the Observablepattern. Otherwise, you'll have to face issues when updating to the Ionic 5. i.e. no Event API on Ionic 5.

请不要使用Event emitter。使用Observable图案。否则,您将不得不在更新到Ionic 5时遇到问题。即没有事件 API Ionic 5

Original

原来的

You can do this in a number of ways.

您可以通过多种方式执行此操作。

One method where I can tell you is using Events.

我可以告诉你的一种方法是使用Events

Events is a publish-subscribe style event system for sending and responding to application-level events across your app.

Events 是一个发布-订阅风格的事件系统,用于在您的应用程序中发送和响应应用程序级事件。

Another method may be using the provider.On that use case, you can share your methodsand variablesthrough the provider.

另一种方法可以使用provider。对在使用的情况下,你可以分享你methodsvariables通过provider

回答by Rebar

The fastest way is to use a GlobalVarsProvider:

最快的方法是使用GlobalVars提供程序:

install it first with:

首先安装它:

ionic g provider globalvars

this will automatically add the new provider to your app.module.tsfile

这将自动将新的提供程序添加到您的app.module.ts文件中

import {Injectable} from '@angular/core';
@Injectable()
export class GlobalVars { 
myGlobalVar: any;
constructor() { 
this.myGlobalVar = ""; 
} 

setMyGlobalVar(value) { 
this.myGlobalVar = value; 
}

getMyGlobalVar() { 
return this.myGlobalVar; 
} 
}

You define there getterand settermethods and the needed variable can be accessed through an Instance of this class! in YourOtherPage.tsyou can get the variable with: this.glVars.getMyGlobalVar()for example.

您定义了gettersetter方法,并且可以通过此类的实例访问所需的变量!在YourOtherPage.ts 中,您可以通过以下方式获取变量:例如this.glVars.getMyGlobalVar()

here you can read more about it: https://ionicallyspeaking.com/2016/03/10/global-variables-in-ionic-2/

您可以在这里阅读更多相关信息:https: //ionicspeaking.com/2016/03/10/global-variables-in-ionic-2/