将数据从一个函数传递到同一个 Angular 组件中的另一个函数

Posted

技术标签:

【中文标题】将数据从一个函数传递到同一个 Angular 组件中的另一个函数【英文标题】:Pass data from one function to another function within same Angular component 【发布时间】:2019-01-27 16:14:14 【问题描述】:

我在同一个角度分量中有 2 个函数(我使用 angular4)。我已将一个字符串变量全局初始化为 null,然后在一个函数中为该变量赋值。现在我必须在我的第二个函数中获取值。但它仍然采用初始值“NULL”。有人可以帮我解决这个问题吗?

export class AppComponent implements OnInit 
etag: string = null;

constructor() 
ngOnInit()
    this.getData();


getData(): void 
  this.etag = "t498dgs8";


printData(): void 
 console.log(this.etag);


【问题讨论】:

你从哪里调用printData()函数? 正如 Faisal 所说,如果在您按下按钮或其他任何东西时调用该函数,它应该可以工作。如果您需要更多帮助。解释更多上下文 你是正确的 PierBJX。它的“onclick”功能来自 html 页面。 GetData() 函数会自动初始化,并且 onclick 功能(printData() 函数)必须打印 GetData() 中的值。 【参考方案1】:

如果你打电话

getData() 方法前后 printData() 不会出错。

但是,如果 getData() 方法实际上是一个 async 方法,这意味着它是 subscribepromise 这将给 null 因为当你调用 printData() 的时候,getData() 方法的异步部分没有完成。

例如, 如果 getData() 方法调用 API,则需要一些时间来分配值 etag

希望这会有所帮助。

【讨论】:

如果我尝试从 getData() 函数内部打印 etag 值,它的工作很酷。但它不是来自 printData() 函数。 你能告诉我你调用 printData() 函数的地方是什么吗?我重现了这一点,但除非我从 constructor 调用 printData() 函数,否则我不会得到 NULL printData() 函数从 HTML 页面(点击)事件中调用。

以上是关于将数据从一个函数传递到同一个 Angular 组件中的另一个函数的主要内容,如果未能解决你的问题,请参考以下文章

将数据从一个组件传递到另一个 Angular 2 时的服务变量

Angular - 如何将数据从一个组件传递到另一个

是否可以将信息从 Angular 组件传递到 AngularJS 组件?

Angular如何将数据从指令传递到父组件

Angular 10/Ionic 5 - 将输入数据从模态传递到父组件

Angular:将数据从材料对话框传递到未打开对话框的组件