2016-08-31 9 views
3

私はバニラのjavascriptからオブジェクトのタイトルを取得し、それを私の角2コンポーネントで取得しようとしています。現時点では変数をlocalStorageに保存していますが、それを行う良い方法だとは思いません。バニラJSの変数をAngular2に渡す方法

ボタンをクリックすると変数をlocalStorageに保存するには、ボタンがiframeにあります。

これを達成する方法を誰かが正しい方向に向けることができますか?

編集は以下の答えを再:あなたがイベントを放出し、それに耳を傾ける角度

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

にして、角度で聞くことができる「名前を見つけることができません」され enter image description here

答えて

5

を赤ビットの残りの部分を

export class MyComponent { 
    constructor() {} 

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

このようにして、Angular runはe ventハンドラが呼び出されます。

+0

返信いただきありがとうございます。トップビットについてもっと説明できますか?私はそれがjsになると思うし、 "someValue"は私が得ようとしている価値ですか? @hostListener私は宣言を期待してエラーを取得し、onJsValueの名前が見つかりません。 – nCore

+0

はい、 'window.dispatchEvent()'はJSです。他の部分はコンポーネント内にある必要があります。十分な情報がない場合は、正確なエラーメッセージを投稿してください。 –

+0

window.dispatchEvent()をクリアしていただきありがとうございます。オリジナルの投稿にエラーが投稿されました。私はそれを私のコンストラクタに入れました。それが基本的にこのhttps://angular.io/docs/ts/latest/api/core/index/HostListener-var.htmlにちょうど当てはまる場所であるかどうかは不明ですし、 dは似ています。 – nCore

関連する問題