onclick
は、文字列に解決される式ではなく、関数呼び出しを想定しています。
@
の代わりに&
を使用する必要があります。これは、文字列ではなく実行可能なコード行を渡すためです。
onclick
の代わりにng-click
を使用する必要があります。 onclick
がdocumentationに基づいて、動作しません理由は、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
'onclick'は、関数呼び出しではなく、文字列へのご返信用 – CodeWarrior