如何在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中将数据从一个函数传递到另一个函数的主要内容,如果未能解决你的问题,请参考以下文章