如何在component.ts,angular2中将数据从一个函数传递到另一个函数

Posted

技术标签:

【中文标题】如何在component.ts,angular2中将数据从一个函数传递到另一个函数【英文标题】:how to pass data from one function to another in component.ts , angular2 【发布时间】:2017-08-07 04:55:25 【问题描述】:

您好,我在按钮单击“data.someid”时传递了一些值,我想在另一个按钮单击中获取此“data.someid”

html
---
<button (click)="click1(data.someid)"></button>
<button (click)="click2()"></button>

组件.ts

click1(data)
   this.value = data

click2()
  console.log(this.value)

现在将检索到的数据存储到“click1”上的this.value 中,我想在另一个按钮单击中访问它,但console.log(this.value) 显示undefined

请有人告诉我如何访问它。

【问题讨论】:

您确定 this.value = 函数 click1() 中的数据分配正确吗?尝试先在 click1() 函数中记录值。 根据您的代码,函数 2 依赖于函数 1,因为 this.value 变量将在单击函数 1 时分配数据。所以在这种情况下,如果您直接尝试函数 2,则该值将关闭课程未定义 您能否将type="button" 添加到您的按钮元素并重试? @mayur 我想在 click2 中获取这个值,我该怎么做。 @echonax .. 它工作得很好.. 它是如何在 type="button" 上工作的。以及在“span”中使用它的任何其他方式点击 【参考方案1】:

您是否已将该变量声明为类内的局部变量?并确保您在第二个按钮之前单击了第一个按钮。

export class SomeClass 
  value: any;

  click1(data)
    this.value = data
  
  click2()
    console.log(this.value)
  

【讨论】:

【参考方案2】:

您应该将type="button" 添加到您的按钮元素中,

<button type="button (click)="click1(data.someid)"></button>

否则表单内的按钮将默认为type=submit,就像您提交表单一样。这就是为什么this 指代您的click 范围内的其他内容。

【讨论】:

感谢它的工作很酷.. 如果我使用 span 而不是按钮它不起作用,任何其他修复? @pradeepks 似乎可以正常使用跨度。你能在这个 plunker 中重现它吗:plnkr.co/edit/gzD677GPvX3gM1bABNzg?p=preview 嗨,我用 span 检查了它的工作正常...谢谢。

以上是关于如何在component.ts,angular2中将数据从一个函数传递到另一个函数的主要内容,如果未能解决你的问题,请参考以下文章

Angular2 - 不同级别的组件之间的持久服务

如何在Angular2中使用导航进行路由时显示加载屏幕?

在 Angular2 中使用 d3.js

Angular2.js——主从结构

angular2学习道路--day1

以 angular2 模型驱动形式重用组件