如何将变量从vanilla JS传递给Angular2

时间:2016-08-31 09:49:08

标签: javascript angularjs angular

我试图从vanilla javascript获取对象标题并在我的angular 2组件上检索它。目前我将变量保存到localStorage,但我不认为这是一种很好的方法。

单击按钮时,要将变量保存到localStorage,按钮位于iframe中。

有人能指出我正确的方向如何实现这个目标吗?

编辑下面的答案:其余的红色位是"找不到名字" enter image description here

1 个答案:

答案 0 :(得分:6)

您可以在Angular中发出事件并收听它

window.dispatchEvent(new CustomEvent('js-value', { bubbles: true, detail: 'someValue' });

然后听Angular

export class MyComponent {
  constructor() {}

  @HostListener('window:js-value', ['$event.detail'])
  onJsValue(val) {
    console.log(val);
  }
}

这样您也不会遇到更改检测问题,因为当调用事件处理程序时,Angular会自行更改检测。