2017-06-07 12 views
1

表情をして渡すことができませんか(私は内容でそれを望んでいません。私はちょうどその例を追加しました)。はonclickの角度ディレクティブで次の角のディレクティブで

これは修正できますか?

それが動作する以下のように私は、ボタンを作成する場合:

<button onclick="location.href = '\Home.html'">Using onclick without Angular</button> 

をこれは私がレンダリングする角度指令を取得しようとしている方法です。

+1

'onclick'は、関数呼び出しではなく、文字列へのご返信用 – CodeWarrior

答えて

0

onclickは、文字列に解決される式ではなく、関数呼び出しを想定しています。

@の代わりに&を使用する必要があります。これは、文字列ではなく実行可能なコード行を渡すためです。

onclickの代わりにng-clickを使用する必要があります。 onclickdocumentationに基づいて、動作しません理由は、HTML DOMイベント属性の

補間が禁止されています。 では、代わりにng-バージョン(onclickの代わりにng-clickなど)を使用してください。また

templateに変更templateUrlテンプレートをインラインに提供されているので

あなたはUIマークアップからlocationにアクセスしようとしているので、$の範囲内の位置参照を設定する必要があります<page-footer footerhref="location.href='\Home.html'" />

Here is a working plunker

app.directive("pageFooter", function ($compile) { 
    return { 
     restrict: "E", 
     scope: { footerhref: '&', caption: '@' }, 
     template: '<button ng-click="footerhref()">{{caption}}</button>' 
    } 
}); 

<page-footer footerhref="location.href='\Home.html'" caption="Home"></page-footer> 

$scope.location = location; // In your controller 
+0

おかげで解決される式を期待しています。私は文字列 'location.href =' /ホーム 'を私のonclickに入れたい。私はそれがメソッド呼び出しではないことを認識しています。 のようにボタンを作成すると、インデックスページに戻ります。だから私はその文字列の値が欲しいです。 – John

+0

'@'を使って 'location.href = '/ Home''を渡すと、それは文字列とみなされ、実行可能なコード行ではありません。だから、代わりに '&'を使う必要があります。 – CodeWarrior

+0

文字列 ''Home'と実行可能コード' 'location.href = '/ Home''の両方を渡すには、別々の属性バインディングを使ってそれらを送る必要があります。一方は '@'で、もう片方は '&'で束縛されます。私は、ボタンのキャプションを送信するオプションを含めるように私の答えを編集しました。 – CodeWarrior

関連する問題