2016-05-20 12 views
0

私は実際にリーフレットで作業しています。ユーザがクリックするとAngular 2ルータ経由でページに移動する必要があるポップアップをバインドする必要があります。角度2 - 生のJSをコンポーネントのモデルに変更する

しかし、私は生のJSをポップアップに送信する必要があり、私はポップアップにディレクティブを使用できません。

let html = '<div onClick="Change the variable of some ngModel variable so I can handle it using ngChanges;">Popup content</div>'; 
marker.bindPopup(html); 

どのように作成するのですか?

+0

'onClick'の代わりに'(クリック) 'を使用すると、 –

+0

いいえ...あなたは分かりません。私はサードパーティのスクリプトに送信する生のhtmlで変数を作成する必要があります - 角度のものを送ることはできません。 –

答えて

0

私は本当にうまく解決できませんでした。

<input #gourl type="text" style="position: absolute; left:0; width:0; height:0" id="dummyInput"> 

html += '<div style="height: 20px; color: #7E1877; cursor: pointer" onclick="document.getElementById(!dummyInput!).value=!' + s.data[i].rooms[j].id +',! + Math.random();">' + this.myVar + "</div>"; 

html = html.replace(/!/g,"'"); 

lastUrl = ""; 
ngAfterViewChecked(){ 
    setInterval(function() { 
     if(t.input.nativeElement.value != t.lastUrl){ 
      console.log(t.input.nativeElement.value); 
      t.lastUrl = t.input.nativeElement.value; 
     } 
    },300); 
} 

ので、レシピ::私はこの方法でやった

  • InputBox関数を作成して、生の(非角度2)JSで
  • をそれを隠す、InputBox関数の値を設定します
  • 変更を検出して値を取得するタイマーを作成します。

なぜngOnChangesを使用しないのですか? ngOnChangesはelementRef/nativeElementを追跡できないようです。

関連する問題