2016-10-08 4 views
0

これは角度jを初めて使用するときです。javascriptのangularjs変数

次のコードは、所望の出力できます:

<a href="http://www.example.com/xyz/{{life.animal}}/" target="_blank">Hello </a> 

をそれはページが開きます:予想通り http://www.example.com/xyz/cat/

しかし、以下のコードが動作していません。

<a href='javascript:void(0)' onClick='javascript:window.open("http://www.example.com/xyz/{{life.animal}}/","Windows","width=1150,height=450,toolbar=no,menubar=no,scrollbars=yes,resizable=yes,titlebar=no,location=no,directories=no,status=no");return false')'>Hello </a> 

それがページを開きます。 http://www.example.com/xyz/ {{life.animal}}/

私はいくつかの基本的な間違いをしていると思いますが、私を助けてください。

+0

代わりにtarget = "_ blank"を使用しました。すべての助けをありがとう。 – ruchi

答えて

1

angularは文字列とやりとりしませんが、あなたはウィンドウを開くonclickハンドラ(文字列を渡します)でそれを行おうとします。また

onClick='javascript:window.open("http://www.example.com/xyz/" + life.animal)' 

、@Enzeyが指摘したように、使用のonClickの代わりにNGクリックし、あなたのHTMLからJavaScriptを引き出すし、代わりにコントローラにその原料を行います。変数と文字列と連結を停止します。

例えば:

HTML

<a href="javascript:void(0)" ng-click="myFunction()">Foo</a> 

コントローラ

$scope.myFunction = function() { 
    window.open(...whatever...); 
} 
+0

また、要素上で 'onclick'イベントを使用してポップアップウィンドウで開く必要があります。また、 'target =" _ blank "を代わりに使うのも良いでしょう。 –

2

角度範囲は角度、すなわち、バニラJSの外部利用できません。あなたはNGクリック

を使用する必要があり、角度の方法は、テンプレートでは、このような

scope.open = function() { $window.open(...) }

としてお使いのコントローラやディレクティブで関数を作成クリック機能を設定するには

ng-click="open()" を行います

1

二重ハッシュは、Javascript Vanilでない角度指示文に使用されます<a>タグでng-hrefの代わりにnrefを使用すると、より良い結果が得られます。これを確認できますhere

関連する問題